我知道的一件事是,Node.js不应该用于密集的CPU任务。现在,假设我有一个node.js服务器接收来自多个客户端的音频流(来自MIC)。这个音频是通过执行memcpy (非常快)在c/c++插件中缓冲的。但是当触发end事件时,这个插件会将“音频到命令”转换为“命令”,并将其发送到客户端。此转换消耗75 max(最大)。node.js能被认为是解决这个问题的可靠解决方案吗?在Node.js中,75 be可以被认为是一个密集的任务吗?建议阻塞操作的最长时间是多少?
发布于 2015-12-10 19:23:40
阻塞不是Node.js的方式。
您可以异步地(在一个单独的线程中)进行此操作,而无需任何阻塞,并在操作完成时从您的addon调用回调,这样主node.js线程就不会被阻塞,并且能够处理其他请求。
在NAN中有像AsyncWorker和AsyncQueueWorker这样的好帮手。
还有一些C++库可以使用WebSockets,所以我会考虑客户端和插件之间的直接连接。
https://stackoverflow.com/questions/34209873
复制相似问题