使用错误的WebSocket协议在gorilla / websocket / client.go的Dial函数中返回“意外的EOF”错误

我正尝试使用大猩猩/ websocket
,但我一直收到错误“意外的EOF”。 我花了很长时间才发现这是因为我需要使用安全的WebSocket协议连接到该服务器(URL中使用“ wss://”而不是“ ws://”)。</ p> \ n

如何验证给定的端点使用了错误的协议,以便可以记录有用的错误消息而不是“意外的EOF”?</ p>
</ div>

展开原文

原文

I was trying to connect to a server in Go by using gorilla/websocket and I kept getting the error "unexpected EOF". It took me way too long to find out it was because I needed to use the secure WebSocket protocol to connect to that server ("wss://" instead of "ws://" in my url).

How can I verify that I'm using the wrong protocol for a given endpoint so that I can log a helpful error message instead of "unexpected EOF"?

douran7929
douran7929 如果端口号是:443,请不要包括在内。对http.ReadResponse的调用可能返回nilio.UnexpectedEOF,因为服务器由于缺少TLS握手而关闭了连接。
接近 3 年之前 回复
doushi9376
doushi9376 我确实在URL中指定了端口,但是当我在Dial函数中进行调试时,我注意到服务器响应在某些时候为零,这就是发生错误的地方。
接近 3 年之前 回复
dongshuzui0335
dongshuzui0335 您是否在URL中指定了端口号?如果不是,则错误出在服务器上。它应该拒绝了端口80上的连接,或者应该返回描述该问题的HTTP响应。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问