2015-07-10 157 views
0

单击按钮时,控制台上应显示消息“门”,但不是。使用socket.io和node.js,按钮单击不会触发事件

客户端代码:

<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'); 
    }); 
} 
+0

在客户端上,不要传递函数 - 而是传递有效载荷。您无需致电发送。 – tariksbl

+0

只是通过负载将需要在服务器端的变化,当我改变服务器端代码,如下所示:socket.on('door', \t io.sockets.emit('doorEvent',{msg :data}) );我得到了以下错误:参考错误:数据未定义...尝试搜索相同的sloution,但没有运气@tariksbl – Divesh

回答

0

你应该试试这doorClicked功能:

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

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

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

好了,问题就解决了,这是在我还没有在我的问题提到的代码的一部分,我非常对不起。

在客户端代码上,我将按钮和其他按钮放在同一表单中,每当我单击另一个按钮时,都会通知事件。所以我尝试将按钮放在我的客户端HTML代码中的不同标签上,并且它工作正常。

P.S.我之前并没有包含整个代码,因为我期待这个错误是在我刚接触socket.io时必须处理的那部分代码。

相关问题