2017-01-21 28 views
0

この問題に関するその他の質問を読んだが、問題の解決策が見つかりませんでした。私はあなたがListenerを削除したり、クリックハンドラからソケットコードを移動したりすることができるのを見ましたが、私の問題には合わないようです。ソケットが複数回呼び出されました

私はソケット+ ajaxを使用しています。次のように私のコードのロジックが行く:

//client side 
button.onclick = function() {Communicate(info);return false;}; 

function Communicate(info) { 
    // ajax call 
} 

// server side -> receive ajax 
app.post("/...",function(req,res) { 
    // do stuff (...) 

    // send global socket call 
    io.sockets.emit("GlobalCall",xx); 

    // return ajax call to the user who triggered this 
    res.send(...)); 

}); 

// client side again 

socket.on("GlobalCall",function(x)) { 
    // this is called twice sometimes for some reason... It should be called only once each time the server emits ... 
} 

私はコードにコメントしたように、サーバは一度しか発するが、「GlobalCall」が2回時々起こります。 助けてください?ありがとう

+0

何が問題ですか?エラーは何ですか? – robkuz

+0

@robkuz私は一度だけサーバー側でしか送信しませんが、クライアント側ではsocket.on( "GlobalCall" ...)が2回呼び出されることがあります –

+0

フロントエンドにsocket.onの前にconsole.logを追加できますか?発行時にこのコードが何回実行されたかを確認してください。登録時に –

答えて

0

解決策は実際にソケットに関連していませんでした。割り当てられたプロパティごとに2回実行されたjqueryアニメーションと何が起こっていたのでしょうか。私はそれを知らず、気付かなかった。ソケットを非難するのは間違いです。

関連する問題