2017-01-13 15 views
0

クライアントからサーバー側にデータを送信しようとしています。私はundefinedを得るだけです。ユーザーがledOn関数をクリックして1を送信し、ledOffをクリックして0をサーバーに送信したいとします。socketIO data undefined

server.js

io.sockets.on('connection', function(socket){ 

    socket.on('ON', function (data) { 
     console.log(data); 

    }); 
    socket.on('OFF', function (data) { 
     console.log(data); 

    }); 
}); 

client.js

function ledOn() { 
socket.emit ('ON'); 
    document.getElementById("ON").value = "1" 
console.log("Led is ON "); 
} 

function ledOff() { 
socket.emit('OFF'); 
    document.getElementById("OFF").value = "0" 
console.log("Led is Off"); 

} 

てindex.HTML

<div id="ON"> 
<input type="submit" value="Led ON" onclick="ledOn()"> 
</div> 
<div id="OFF"> 
<input type="submit" value="Led OFF" onclick="ledOff()"> 
</div> 
+0

リスナーを呼び出すときにデータを送信していません。これは 'socket.emit( 'OFF'、 'yourData');と同じでなければなりません;最初のパラメータはリスナー名で、残りはパラメータです。 – Shubham

+0

ありがとう私はそれを完全にスキップしました。 – Ekom

答えて

1

変更client.jsは、"ON"または"OFF"イベントの場合にいくつかのデータを出力します。たとえば、以下のように、私はそれぞれ"1""0"ledOn()ledOff()に送っています。

function ledOn() { 
    socket.emit ('ON', "1"); 
    document.getElementById("ON").value = "1" 
    console.log("LED is on"); 
} 

function ledOff() { 
    socket.emit('OFF', "0"); 
    document.getElementById("OFF").value = "0" 
    console.log("LED is off"); 
} 

いくつかの例を見るには、Socket.IO docsを参照してください。