How to run EventSource inside a shared worker?

I implemented events sent by the server to receive messages from the server. I describe how I implemented it to another question

Now I'm trying to run it inside a shared worker so that the user does not open multiple connections to the servers using multiple browser tabs.

Here is what I did to run the code inside a common working

created a calles file worker.jsand I entered it inside it

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);

Then, when the HTML page loads, I call this code

$(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);

    });

But the code does not return messages from the server.

How can I correctly trigger an event EventSourceinside a common user?

0

All Articles