目前,我正在使用nodejs express编写一个API,并连接到socket.io并发送事件。
该API位于socket.io-client(客户端),它连接到socket.io(服务器)。
第1个API调用:成功
当API第一次调用时,连接建立成功,消息被发送,然后可以断开socket连接,在客户端和服务器端都调用了“disconnect”回调函数。
第2个API调用:失败
当API第二次被调用时,无法连接到服务器,“client”回调函数在客户端未被调用。
第3个API调用:成功
然后我尝试重新启动客户端,保持其他事项不变。再次调用API,成功连接到socket.io,并一切正常。
有人能解释一下背后的逻辑吗?
更新
client.js
该API位于socket.io-client(客户端),它连接到socket.io(服务器)。
第1个API调用:成功
当API第一次调用时,连接建立成功,消息被发送,然后可以断开socket连接,在客户端和服务器端都调用了“disconnect”回调函数。
第2个API调用:失败
当API第二次被调用时,无法连接到服务器,“client”回调函数在客户端未被调用。
第3个API调用:成功
然后我尝试重新启动客户端,保持其他事项不变。再次调用API,成功连接到socket.io,并一切正常。
有人能解释一下背后的逻辑吗?
更新
client.js
App.getByUserId(message.to_id, function(error, app) {
var socket = io.connect('http://127.0.0.1:9002');
socket.on('connect', function(){
console.log("client connect socket id:" + socket.id);
console.log("appkey:" + app.private_token);
socket.emit('appkey.check',{appkey: app.private_token, uuid: message.to_id.uuid}, function(data){
socket.emit("forceDisconnect");
socket = null;
});
});