2016-09-08 14 views
0

私は既に標準のnodejsサーバをセットアップしていますが、あるクライアントがsocket.io経由でリクエストを送信し、すべてのクライアントがそれに反応すると問題が発生しますが、これは間違っています。リクエストは反応するはずです。クライアント側のNodejs複数のクライアント処理

:サーバー側の

function show(){ 
       socket.emit('show') 
      } 

socket.on('show', function(){ 
     io.emit('request', 'clear'); //clear a table on the website 
     db.each("SELECT tableRow1, tableRow2, tableRow3 FROM table, 
     function(err, row){ 
      io.emit('new', row.tableRow1, row.tableRow2, row.tableRow3) 
     }); 
    }); 

と、クライアント側での反応は次のとおりです。

socket.on('new', function(tableRow1, tableRow2, tableRow3){ 
     var myString = ' <input id="id1" type="checkbox" name="boxes"><label for="id1" id="labelID" onclick="Click(this)">'tableRow1'</label>' 
     $('#tableID').append($('<tr>') 
     .append($("<td>"+myString+'<td/>'+"<td>tableRow2</td>"+"<td>"TableRow3"</td>")).append($('<tr/>'))); 
    }); 

と今の問題は、その後、1つのクライアントでありますすべてのクライアントがそれに反応し、サーバーからデータを取得しているデータベースからデータをロードするためにボタンを押します。

+0

あなたが現在でこれをしようとしているコードを共有してもらえますか? – leroydev

答えて

0

おそらくサーバー側からsocket.emitを使いたいと思うでしょう。 https://gist.github.com/alexpchin/3f257d0bb813e2c8c476

クライアント側の例

// send to server 
socket.emit('retrieve users') 
// register callback 
socket.on('retrieve users', doSomething) 

サーバー側の例では、このsocket.ioチートシートをチェック

// sending to sender-client only 
socket.on('retrieve users',() => socket.emit('retrieve users', users)) 
+0

エラーをクラッシュしました "undefindのプロパティを読み取ることができません" –

+0

クライアント側のスクリプトでshow関数にソケットオブジェクトを渡し、io.emit( 'new')をsocket.emit( 'new')に変更します – Adit

+0

Ok私は間違いを見つけました....ありがとうございました:) –

関連する問題