单击带有Socket IO的事件

时间:2014-09-19 09:56:19

标签: node.js websocket socket.io

我使用node和Socket IO在一个浏览器中设置点击事件,并在另一个浏览器中触发动画。我很难让这个工作。例如,单击一个浏览器中的按钮将隐藏另一个浏览器中的框。我到目前为止的代码是:

客户方:

    function hideBox(data) {
      $('.box').hide();
    };

    $('.btn').on('click', function(event) {
      socket.emit('hideBtn', {id: event.target});
    });

    socket.on('hideBtn', function(data) {
      $(data.id).hideBox;
    });

服务器端

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

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

 socket.on('hideBtn', function(data) {
      $(data.id).hideBox;
    });

hideBox是一个函数吗?也许是因为“()”被遗忘: - )

答案 1 :(得分:0)

好的,所以经过多次来回,答案导致实际上只需要简化代码。无需指定event.target等,只需发出并监听事件即可。

客户端代码index.html:

$('.btn').on('click', function() {
  socket.emit('hideBoxRequest');
});

服务器端代码:

socket.on('hideBoxRequest', function () {
  socket.broadcast.emit('hideBox');
});

最终代码客户端,对于我的其他html文件:

socket.on('hideBox', function () {
    $('.testBox').fadeOut();
});

所以基本上点击index.html中的顺便说一下发出' hideBoxRequest'到服务器。然后服务器选择它并发送出“hideBox”'连接到服务器的所有客户端。