我实施了server-sent events来接收来自服务器的消息。我描述了我是如何在another question
上实现它的现在我尝试在shared worker内运行它,以防止用户通过多个浏览器标签打开与服务器的多个连接。
以下是我在共享工作程序中运行代码所做的工作
创建了一个文件calles worker.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
事件?