这两天简单的用socket.io做了下封装来实现用户在线状态的统计,在实际应用中,遇到了很诡异的问题。
简单来说,就说在部分机器上会重复的给服务器发送连接请求,按照昨天出问题后回看的日志中,最多的会发送超过1000次,不知道现在各位是否有遇到同样的情况,如果有的话,求解。
transports策略为["websocket" , "htmlfile" , "xhr-polling" , "jsonp-polling"],和express进行了整合(socket.io:0.9.14,express:3.2.5,node.js:v0.10.5,策略里没有flashsocket的原因是实际测试发现这种模式建立连接要等待好几秒,同时默认的重连策略感觉大概超过1-2秒以后就无法自动重连)。
大致的流程就是客户端浏览器在建立连接后将一些信息发送给服务端,然后服务端进行状态保持,当监听到用户断开后,再更新用户状态。
举例出问题的连接(最夸张的一个): "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)-******":1518 按照useragent来解析,这台用户的机器是winxp,用的是ie8,到出问题为止一共发送了1518次连接请求,但是我用同样的环境来连就不会出现这种情况(我本机就是这样)。
不知道问题这样描述是否详细,。