【问题标题】:Socket io namespace server emit three times to clientSocket io 命名空间服务器向客户端发出 3 次
【发布时间】:2016-12-23 16:51:34
【问题描述】:

您好,我一直在这里查看有关为什么我的套接字 io 服务器向客户端发射 3 次的问题。

免责声明:这不是重复的问题,请仔细查看我的问题

我就是这样绑定服务器来表达的

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
    })
}

分析

在客户端,我有日志,客户端只发出一次, 但是,当服务器响应时,它会向客户端发出 3 次,使客户端侦听器触发 3 次

我做错了什么? 这不是一个重复的问题,没有人对命名空间有同样的问题。

【问题讨论】:

  • 您是否多次致电require('./routes/sock')(io);?您似乎没有披露会导致此问题的代码,因此问题必须在您未展示的其他代码中的其他地方。
  • @jfriend00 我只从我启动快速服务器的主文件中调用require('./routes/sock')(io); 一次
  • 好吧,我看不出您在显示的代码中描述的问题的原因。您尚未显示的其他代码中肯定存在问题。
  • @jfriend00 我已经编辑了问题,请检查,我的所有其他代码都在同一流程中继续,但是当服务器发出时,客户端收到了 3 次
  • 我的猜测是客户端问题,在客户端中不止一次安装了事件处理程序,导致您在客户端中为给定的客户端用户事件多次运行相同的代码。

标签: node.js socket.io


【解决方案1】:

更新,我的套接字服务器没有任何问题,问题出在我的客户端android,我的客户端可以多次监听,它在 android 活动生命周期中。基本上,我的 android 开发人员告诉我,他在 onResumeonPause 中调用了监听器,这使它监听了两次。反正我不是安卓开发者,我只是希望没有人遇到同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2022-09-27
    • 2018-02-05
    • 2021-09-30
    • 2021-06-27
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多