1

我实现了服务器发送的事件来接收来自服务器的消息。我描述了我如何在另一个问题上实现它

现在我试图在共享工作者中运行它,以防止用户通过多个浏览器选项卡打开到服务器的多个连接。

这是我在 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在共享工作者中正确运行事件?

4

0 回答 0