解决nodejs websocket.io 重新连接无法接受消息的问题
2014-12-19 10:14
267 查看
场景重现:
websocket 应用到手机网页中的时候,如果关闭手机屏幕网络就会断开,导致用户无法发送信息和接受信息。可以通过io进行重连,但是发送信息成功,无法接受信息。无奈ing。
解决方法:
1、relogin 方法中io.connect后面需要加上参数forceNew,否则无法重连。
2、重连成功之后,需要重新init一下,在init之间所用的websocket依旧为第一次连接时候的websocket,无法继续监听事件。重新init之后,websocket为强制连接之后的websocket。
websocket 应用到手机网页中的时候,如果关闭手机屏幕网络就会断开,导致用户无法发送信息和接受信息。可以通过io进行重连,但是发送信息成功,无法接受信息。无奈ing。
解决方法:
relogin: function(){ this.socket = io.connect('http://182.254.149.230:8080',{ <span style="color:#ff0000;">forceNew: true </span>}); this.socket.emit('login', {userid:id}); <span style="color:#ff0000;">this.init(1);</span> }, init : function(re){ if(!re) this.socket = io.connect('http://182.254.149.230:8080'); /*websocket 的一些监听操作*/ }
window.onload = init();注意两点:
1、relogin 方法中io.connect后面需要加上参数forceNew,否则无法重连。
2、重连成功之后,需要重新init一下,在init之间所用的websocket依旧为第一次连接时候的websocket,无法继续监听事件。重新init之后,websocket为强制连接之后的websocket。
相关文章推荐
- 在数据库重启之后无法重新连接数据,无法正常提供服务问题解决
- 远程计算机或设备将不接受连接,IE无法上网问题解决
- nginx解决socket.io、ws无法连接问题
- Hexo解决无法连接到用户名.github.io的问题
- 解决vs2005无法连接sql数据库问题
- 安装完vs.2005之后,重新安装iis后无法使用http方式访问asp.net工程的页面的问题的解决方法
- 解决SQL Server 2005 Express中无法连接到服务器问题
- 请单击下面的按钮,以重定向到可以选择新数据存储区的页。下面的消息可能会有助于诊断问题: 无法连接到 SQL Server 数据库。
- 无法与SQLServer2000连接的问题解决
- 解决SQL SERVER 2005无法远程连接的问题
- 解决Gentoo Telnetd不接受外部连接的问题
- 解决 c3p0 和 MySQL 集成情况下,连接长时间闲置后重新使用时报错的问题
- 解决文件无法上传的问题,错误信息:System.IO.DirectoryNotFoundException: Could not find a part of the path.
- 解决SSIS连接ODBC数据源时“无法从运行时连接管理器获取托管连接”的问题
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决
- 机器重命名后,Oracle9i数据库无法连接问题的解决
- apache+php4+mysql5 无法连接问题的解决。
- 使用PLSQL Developer时,“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法
- IE无法打开连接的问题解决办法
- 解决使用ASP无法连接 ORACLE 9i 数据库的问题。