繁体   English   中英

将事件连接到socket.io

[英]Connecting events to socket.io

我无法一生解决这个问题……请第二只眼睛帮忙! 我正在尝试在将值分配给“优胜者”的函数中捕获“优胜者”值。 然后,我想将此数据广播给所有客户。

这是指向我的存储库的链接(以查找代码:专注于(服务器) index.js第29行和(客户端)public / js / general / darkroom / play.js第38 第100行 ): https:// github .com / omaracrystal / Capstone.Project.io

这些是我正在采取的步骤:

1) public / js / general / darkroom / play.js>第38行

``socket.emit('winner known', winner);``

2) public / js / general / darkroom / play.js>第100行

``socket.on('winner known', function (data) {
      console.log(data);
  })``

3)index.js>第29行

``socket.on('winner known', function (data) {
      socket.broadcast.emit(data);
  }; ``

我究竟做错了什么???

index.js您已经使用

    io.on('connection', function (client) { //line 26
      var addedUser = false;

      socket.on('winner known', function (data) { //socket is undefined
        socket.broadcast.emit(data);
      };
});

改为使用

    io.on('connection', function (socket) {  //'socket' is the instance of connected client's socket
      var addedUser = false;

      socket.on('winner known', function (data) {
        socket.broadcast.emit(data);
      };
});

从套接字发出信号时,需要命名事件类型。 所以:

io.on('connection', function (socket) {  
      var addedUser = false;

      socket.on('winner known', function (data) {
        socket.broadcast.emit(data);
      };
});

应该

io.on('connection', function (socket) {  
      var addedUser = false;

      socket.on('winner known', function (data) {
        socket.broadcast.emit('winner known', data);
      };
});

这样,您的客户端代码就知道要查找什么。

当您启动节点服务器时,您是否遇到任何错误:未定义? 如果您可以启动它而不会发生任何错误,那完全是胡说八道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM