7

NodeJS での Web Worker サポートの状況を知っている人はいますか? 2 年前の実装である node-webworkers を見つけましたが、NodeJS の現在のビルドでは動作しませんでした。

4

4 に答える 4

3

子プロセスを使用できます。それらは同様の問題を解決します。

于 2013-01-25T13:28:00.463 に答える
2

HTML5 WebWorker ソースの詳細を見ることができます。

少し注意して、次のようなプレリュードを追加することで、WebWorker を Node.js ワーカーとして適合するように「修正」できます。

const { parentPort } = require('worker_threads')

global.postMessage = function(msg){
    parentPort.postMessage(msg)
}

var handler

global.addEventListener = function(kind, callback){
    handler = callback    
}

parentPort.on('message', msg => {
    handler(msg)
})

特定の HTML5 ワーカーがmessageを使用してイベント ハンドラーを追加したaddEventListenerので、そのような関数を に登録しglobal、ハンドラーを保存しました。postMessageまた、実装を提供する必要がありました。最後に、HTML5 ハンドラーを呼び出す Node.js メッセージ ハンドラーを登録しました。

すべてが完璧に機能します。特別な依存関係は必要ありません。HTML5 ワーカー コードを見て、メッセージを処理するポイントを特定するだけです。

于 2020-10-25T11:38:44.093 に答える