【发布时间】:2014-03-25 00:31:51
【问题描述】:
当客户端通过 socket.io 连接时,我传递了一个包含 ID 的自定义查询字符串来授权服务器上的客户端。
var env = {id:12345};
var socket = io.connect('https://example.com', {query:'i='+env.id, port:443, reconnect:false, secure:true});
当客户端因任何原因断开连接时,只需调用以下函数即可重新连接。
socket.socket.connect();
但是,在重新连接时 env.id 通常包含与初始连接期间不同的值,我希望在每次重新连接时在查询字符串中包含当前值。
上述重新连接方法再次发送初始值,即使env.id同时更改为其他值。
我尝试在调用reconnect函数时设置当前参数,但似乎不起作用。
socket.socket.connect('https://example.com', {query:'i='+env.id, port:443, reconnect:false, secure:true})
有没有一种简单的方法可以用当前的env.id 值更新查询字符串然后重新连接?
或者我是否需要在断开连接后销毁整个套接字对象,然后使用 var socket = io.connect() 和当前 ID 建立一个新连接?
【问题讨论】:
-
文档给出了如何做到这一点的示例:github.com/socketio/socket.io-client/blob/master/docs/…
标签: node.js parameters socket.io reconnect