Проблема с широковещательным каналом при использовании с модулем nodejs worker_threads
Я пишу скрипт nodejs. В этом я создал работника с использованием worker_threads и BroadcastChannel. Я не могу отправить сообщение из моей основной темы в рабочие темы. Тем не менее, я могу отправить сообщение от работника в основной поток.
Ниже приведен мой код для main.js
let worker = new Worker('worker.js')
let channel = new BroadcastChannel('testChannel', {
type: 'node',
webWorkerSupport: true
})
channel.postMessage('sending message to worker')
channel.onmessage = message => {
console.log('received message in channel main')
console.log(message)
}
Ниже приведен код в worker.js
let channel = new BroadcastChannel('testChannel', {
type: 'node',
webWorkerSupport: true
})
channel.onmessage = message => {
console.log('received message in channel')
console.log(message)
}
channel.postMessage('from worker')
`
1 ответ
Вам нужно будет добавить еще BroadcastChannel
объект для входящих сообщений.
Пример (main.js):
let broadcastingChannel = new BroadcastChannel('testChannel', {
type: 'node',
webWorkerSupport: true
});
broadcastingChannel.postMessage('sending message to worker')
let incomingChannel = new BroadcastChannel('testChannel', {
type: 'node',
webWorkerSupport: true
});
incomingChannel.onmessage = message => {
console.log('received message in channel main')
console.log(message)
};