我正在制作一个服务器脚本,为了让主机和客户端都能更轻松地做他们想做的事,我制作了一个使用 nw.js(带有可视界面)运行的可定制服务器脚本。所述脚本是使用网络工作者制作的,因为 nw.js 在支持工作者线程方面存在问题。
现在 NW.js 解决了他们与工作线程的问题,我一直在尝试将 web 工作人员内部的所有东西移到工作线程,但是有一个问题:当主线程从第二个线程接收到答案时,稍后停止响应任何后续消息。
例如,使用 NW.js 或 Node.js 本身运行以下代码将只返回一次“pong”
const { Worker } = require('worker_threads');
const worker = new Worker('const { parentPort } = require("worker_threads");parentPort.once("message",message => parentPort.postMessage({ pong: message })); ', { eval: true });
worker.on('message', message => console.log(message));
worker.postMessage('ping');
worker.postMessage('ping');
如何配置工作人员,以便在收到第一条消息后继续响应它收到的任何消息?