2015-07-10 160 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時必須處理的那部分代碼。

相關問題