为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我会收到超大记录 TLS 错误?

为什么我会收到超大记录 TLS 错误?

Go
蛊毒传说 2022-03-03 15:59:08
我正在尝试使用go-xmpp连接到DuckDuckGo 的 XMPP 服务。下面是我的测试用例:package mainimport (    "crypto/tls"    "log"    "github.com/mattn/go-xmpp")const (    svr = "dukgo.com"    usr = "testtesttest"    pwd = "test123")func main() {    xmpp.DefaultConfig = tls.Config{        ServerName:         svr,        InsecureSkipVerify: false,    }    options := xmpp.Options{        Host:     svr,        User:     usr,        Password: pwd,    }    _, err := options.NewClient()    if err != nil {        log.Fatal(err)    }}该log.Fatal块正在执行并返回以下错误消息:2016/08/24 16:32:27 tls: oversized record received with length 28012exit status 1谷歌搜索错误将我指向 Docker 中的相同错误,所以这并不完全有帮助。这个错误是什么意思?我能做些什么来解决这个问题?
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

就像您正在使用的 go-xmpp 包的示例一样,它也需要 tls 的端口。

因此,如果没有它,它将尝试连接到 HTTP 端点并给你这个错误。当端点仅支持带有未知 CA 证书的 HTTP 或 HTTPS 时,您将看到类似的错误。

请注意,您使用的包还支持 No TLS 双重检查 DuckGo xmpp 要求并更改您的代码以匹配它们。

例子

https://github.com/mattn/go-xmpp/blob/master/_example/example.go


// Server has the port

var server = flag.String("server", "talk.google.com:443", "server")

var username = flag.String("username", "", "username")

var password = flag.String("password", "", "password")

var status = flag.String("status", "xa", "status")

var statusMessage = flag.String("status-msg", "I for one welcome our new codebot overlords.", "status message")

var notls = flag.Bool("notls", false, "No TLS")

var debug = flag.Bool("debug", false, "debug output")

var session = flag.Bool("session", false, "use server session")


// Omitted code


var talk *xmpp.Client

var err error

options := xmpp.Options{Host: *server,

    User:          *username,

    Password:      *password,

    NoTLS:         *notls,

    Debug:         *debug,

    Session:       *session,

    Status:        *status,

    StatusMessage: *statusMessage,

}


talk, err = options.NewClient()


查看完整回答
反对 回复 2022-03-03
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信