您好我一直在查询我的socket io服务器为什么向客户端发送三次的问题。
免责声明:这不是一个重复的问题,请仔细查看我的问题
这就是我如何绑定服务器来表达
var server = http.createServer(app);
var io = require('socket.io').listen(server);
//var io = require('socket.io')(http);
require('./routes/sock')(io);
//server.listen(port);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
现在这是我在routes/sock
文件中监听的方式,我只是创建一个命名空间并开始侦听事件
module.exports = function (io) {
var chat = io.of('/chat');
chat.on('connection', function (cs) {
console.log('User Connected to chat');
// save client id
var socketid = cs.id;
chat.setMaxListeners(0);
cs.on('my message', function (event) {
chat.to(socketid).emit('my message', 'for your eyes only');
});
cs.on('second message', function (event) {
chat.to(socketid).emit('second message', 'for your eyes only');
});
cs.on('third message', function (event) {
chat.to(socketid).emit('third message', 'for your eyes only');
});
.....
//other events follow with the same flow
})
}
分析
在客户端,我有日志,客户端只发出一次, 但是,当服务器响应时,它会向客户端发出三次,使客户端侦听器触发三次
我做错了什么? 这不是一个重复的问题,没有人遇到与命名空间相同的问题。
答案 0 :(得分:0)
更新,我的套接字服务器没有任何问题,问题出在我的客户端android
,我的客户端可以多次监听,它在android活动生命周期中。基本上我的android开发人员告诉我,他在onResume
和onPause
中调用了监听器,使其听两次。无论如何我不是一个Android开发者,我只希望没有人得到同样的问题。