2017-10-24 8 views
0

ユーザーがページA.htmlのボタンを押したときに、同じWebサーバーでホストされているsocket.ioを使用してB.htmlページ上のイメージを動的に変更するようにしようとしています。 setTimeout()のように意図的な遅延を追加することは可能ですか?socket.ioの2つの異なるページ間の通信?

+0

あなたは常に直前のsetTimeoutを行うことができますB.html上の画像の変化を遅らせるために、読み出し直後にsetTimeoutまたはsetTimeoutを送出します。 socket.ioの時点では、データの送信に遅延を追加する方法はないと思います。 –

答えて

0

setTimeout()と同様に意図的な遅延を追加することはできますか?

はい、遅延はクライアントまたはサーバーのいずれかに追加できます。例えば、ページ内のクライアント:

// after one second delay, send the message to the server 
setTimeout(function() { 
    socket.emit("changeImage", "pageB"); 
}, 1000); 

または、サーバー上:

ページBのクライアントで
socket.on("changeImage", function(data) { 
    if (data === "pageB") { 
     setTimeout(function() { 
      socket.emit("changeImageB", "pageB"); 
     }, 1000); 
    } 
}); 

あるいは:

// listen for message to change the image 
socket.on("changeImageB", function(data) { 
    setTimeout(function() { 
     // change image in the DOM here 
    }, 1000); 

}); 
関連する問題