与nodejs worker_threads模块一起使用时,请与广播频道发行



我正在编写nodejs脚本。因为我使用worker_threads和一个广播channel创建了一个工人。我无法将消息从主线程发送到工作线程。但是,我能够将消息从工人发送到主线程。

以下是我的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')
`

您需要添加另一个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)
};

最新更新