Я реализовал отправленные сервером события для получения сообщений от сервер. Я описываю, как я это реализовал в другом вопросе< /а>
Теперь я пытаюсь запустить его внутри совместно используемого рабочего процесса, чтобы пользователь не мог открывать несколько подключений к серверам через несколько вкладок браузера.
Вот что я сделал для запуска кода внутри 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
внутри общего работника?
getMessagingQueue
? Afaik, рабочие генерируют только событияmessage
иerror
. - person Bergi   schedule 30.06.2015getMessagingQueue
— это имя события, которое возвращает poll.php. - person Jaylen   schedule 30.06.2015EventSource
, но вы не можете использовать то же имя события на воркере - есть толькоonmessage
. - person Bergi   schedule 30.06.2015ReferenceError: EventSource is not defined
, которая ссылается на строку 5 изworker.js
- person Jaylen   schedule 30.06.2015EventSource
не поддерживается в воркерах :-/ - person Bergi   schedule 30.06.2015WebSockets
кажется, поддерживается, по крайней мере, в Workers, да. - person Bergi   schedule 30.06.2015EventSource
в веб-/общих рабочих процессах Ошибка 876498 - person Ricardo   schedule 02.07.2015