, so I looked into three npm packages for working with WebWorker
:
I need to communicate hundreds of data (text
or ArrayBuffer
) per second between the main thread and the webworker, so performance is essential. After reading the documentation of @fcanvas/communicate
, I decided to use the MessageChannel
as demonstrated in the code snippets below.
worker.ts
import { listen } from "@fcanvas/communicate"
listen(self, "send port", (port: MessagePort) => {
port.start()
listen(port, "sort_db", () => {
// ...
})
// ...
})
main.ts
import Worker from "./worker.ts?worker"
import { put } from "@fcanvas/communicate"
function createWorker() {
const { port1, port2 } = new MessageChannel()
const worker = new Worker()
await put(worker, "send port", port2)
port1.start()
// put
}
I am looking for advice on which package to use for optimal performance.