Terry-Mao / goim

goim
https://goim.io/
MIT License
7.21k stars 1.78k forks source link

33_3 server websocket failed error(websocket: close 1001 (going away))错误问题 #125

Closed jie123108 closed 8 years ago

jie123108 commented 8 years ago

我使用examples中的JS的websocket,连接测试环境时,总是出错:

[08/13/16 15:06:13] [EROR] key: 33_3 server websocket failed error(websocket: close 1001 (going away)) [08/13/16 15:06:13] [DEBG] key: 33_3 wakeup exit dispatch goroutine [08/13/16 15:06:13] [DEBG] key: 33_3 dispatch goroutine exit [08/13/16 15:06:13] [DEBG] key: 33_3 server websocket goroutine exit

但是测试时,发现后续通讯,还是能正常进行,可以推送到消息。这个会是什么原因造成的?

tonybase commented 8 years ago

可以把comet.conf中的debug设置为0

jie123108 commented 8 years ago

设置成0,是没有了,但是我看代码,是在serveWebsocket中,走到这一步,连接就被关闭了。 这个在逻辑上没有问题码? 是个的客户端的问题,还是其它原因造成的? 会不会对服务有什么潜在的影响?

tonybase commented 8 years ago

这个应该是正常的错误,因为客户端关闭了ws,返回1001 状态码。这里错误需要处理一下,ws后面还会进行更新,目前我们也是刚刚开始接入ws,不过是以socket为主。

jie123108 commented 8 years ago

喔,那这儿还有一点说不通,如果ws断开了,那应该后面就接收不到推送消息了,但是测试发现,后续消息,还是能收到的。这个很奇怪。

jie123108 commented 8 years ago

另外,听你这么说,我想问下,ws的推送,能否用于正式环境? socket虽然更为成熟,但是对客户端要求似乎更高些,我们想直接用websocket。

tonybase commented 8 years ago

后续消息还能接收到,看看是不是脚本重连了?

tonybase commented 8 years ago

目前我们是使用socket,比较好调优;而ws多了一层协议,现在也是看到有些使用于ws,稍微过一下websocket.go进行测试调修一下应该问题不大。

jie123108 commented 8 years ago

嗯,确实还能收到后续消息。 从chrome的网络请求看,应该没重连的,只有一次ws请求。

tonybase commented 8 years ago

好的,我先测试下,你也可以使用devolop分支来试试的。

jie123108 commented 8 years ago

抱歉,经过抓包及不同的浏览器测试,发现这不是goim的问题,也不是浏览器问题,是一个正常现象,原因是: 我测试时,经常会修改js或html代码,然后会F5刷新页面,这时浏览器会关闭上次的websocket连接,由于关闭可能会延迟,所以goim读取上一个ws出错日志,通常在新连接建立日志之后。因此我错误的以为这个出错日志,是新连接导致的。

打开新页面测试就不会有这种问题了。

tonybase commented 8 years ago

好的