【问题标题】:Using socket.io and node.js, button click does not trigger event使用socket.io和node.js,按钮点击不会触发事件
【发布时间】:2015-09-28 14:07:14
【问题描述】:

单击按钮时,消息“门”应该出现在控制台上,但不是。

客户端代码:

<button type="button" onClick = "doorClicked()">Door</button>

function doorClicked(){
        socket.emit('door', function(data){
            socket.send("Door");
        });
}

Server side :
io.sockets.on('connection', function(socket){
socket.on('door', function(data){
        console.log('Door');
    });
}

【问题讨论】:

  • 在客户端,不要传递函数——而是传递有效载荷。您无需调用 send。
  • 只传递有效负载也需要在服务器端进行更改,当我更改服务器端代码如下:socket.on('door', io.sockets.emit('门事件',{msg:数据}));我收到以下错误:参考错误:数据未定义...尝试寻找相同的 sloution,但没有运气@tariksbl

标签: node.js socket.io buttonclick no-response


【解决方案1】:

你应该在 doorClicked 函数上试试这个:

function doorClicked(){
    socket.emit('door');}

您不需要发出任何数据。因为你正在安慰字符串“门”。 所以,你的服务器端代码应该是这样的,

    Server side :
io.sockets.on('connection', function(socket){
socket.on('door', function(){
        console.log('Door');
    });
}

【讨论】:

    【解决方案2】:

    好的,所以问题已经解决了,它在我的问题中没有提到的代码部分,对此我深表歉意。

    在客户端代码中,我将按钮与其他按钮放在同一个表单中,并且每当我单击其他按钮时,都会通知该事件。所以我尝试将按钮放在客户端 HTML 代码中的不同标签上,效果很好。

    附:我之前没有包含整个代码,因为我预计错误出现在必须处理 socket.io 的代码部分,因为我是新手。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2012-01-19
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2012-09-12
      • 2019-06-22
      相关资源
      最近更新 更多