サーバーからメッセージを受信するためにサーバー送信イベントを実装しました。別の質問でそれをどのように実装したかを説明します
現在、ユーザーが複数のブラウザタブを介してサーバーへの複数の接続を開くのを防ぐために、共有ワーカー内で実行しようとしています。
共有ワーカー内でコードを実行するために私が行ったことは次のとおりです
ファイルcallesworker.js
を作成し、このコードをその中に入れました
self.addEventListener('getMessagingQueue', function (event) {
console.log('Listener is Available');
var thisp = this;
var eventSrc = new EventSource('poll.php');
eventSrc.addEventListener('getMessagingQueue', function (event) {
var message = JSON.parse(event.data);
thisp.postMessage(message);
}, false);
}, false);
次に、HTML ページが読み込まれると、このコードを呼び出します
$(function(){
var worker = new SharedWorker('worker.js');
worker.addEventListener('getMessagingQueue', function (event) {
var message = event.data;
console.group('Message Received');
console.log( message );
console.groupEnd();
}, false);
});
しかし、コードはサーバーからメッセージを返しません。
EventSource
共有ワーカー内でイベントを正しく実行するにはどうすればよいですか?