我正在将sails.js用于我的节点框架,并使用socket io进行群聊。 Web套接字出现奇怪的行为。作为Javascript作为前端客户端,当调用具有套接字连接逻辑的API多次且一条消息发送相同次数的API时。
首先在react native应用中遇到的问题,然后我使用普通的javascript作为客户端对其进行了尝试。当我想关闭套接字时,我还发出了socket.disconnect()。
我的客户端上的代码
var socket = io('http://localhost:1339');
socket.on('connect', function () {
console.log('connection made')
});
socket.on('abc',(message)=>{
console.log('message', message)
})
document.getElementById('socketClose').addEventListener('click', ()=>{
console.log('desconnecting', socket.id);
socket.disconnect();
})
服务器控制器中的代码
getActiveChat: async(req, res)=>{
sails.io.on("connection", function(socket){
sails.io.sockets.emit('abc',{ socketId: socket.id });
});
}
更新: 我能够通过删除API内部的连接事件来解决此问题,因为每次定义API时都定义了连接侦听器,这并不覆盖以前的侦听器方法。我将代码放在config的sockets.js文件中,我们不需要每次定义连接监听器。