我实现了服务器发送的事件来接收来自服务器的消息。我描述了我如何在另一个问题上实现它
现在我试图在共享工作者中运行它,以防止用户通过多个浏览器选项卡打开到服务器的多个连接。
这是我在 Shared Worker 中运行代码所做的工作
创建了一个文件调用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
在共享工作者中正确运行事件?