8

現在、nodejs Express を使用して API を実装しています。次に、socket.io に接続してイベントを送信する必要があります。

API は socket.io-client (クライアント) にあり、socket.io (サーバー) に接続します。

最初の API 呼び出し:成功

API の最初の呼び出しで接続が確立され、メッセージが送信され、クライアント側とサーバー側の両方で「切断」コールバックが呼び出されてソケットが切断されます。

2 番目の API 呼び出し:失敗

API が 2 回目に呼び出されると、サーバーへの接続が確立されず、クライアント側の「client」コールバックが呼び出されません。

3 回目の API 呼び出し:成功

次に、他のことを変更せずに、クライアント側を再起動しようとしました。API が再度呼び出され、socket.io への接続が正常に行われ、すべて問題ありません。

この背後にあるロジスティクスを説明できる人はいますか?

更新しました

client.js

   App.getByUserId(message.to_id, function(error, app) {
  var  socket = io.connect('http://127.0.0.1:9002');
  socket.on('connect', function(){
  console.log("client connect socket id:" + socket.id);
    console.log("appkey:" + app.private_token);
    socket.emit('appkey.check',{appkey: app.private_token, uuid: message.to_id.uuid},    function(data){
        socket.emit("forceDisconnect");
        socket = null;

    });
});
4

2 に答える 2

0

ソケット 1.0+ では、新しい接続を強制するためにこれを使用する必要があります。

io.connect(SERVER_IP, { 'forceNew': true });
于 2018-08-16T09:49:24.823 に答える