没有为节点绑定

时间:2015-11-08 22:17:16

标签: javascript c++ node.js multithreading node.js-nan

我被困住了。这是我第一次使用Node.js和javascript。我试图为用C ++编写的库实现Node.js绑定。我用一个简单的控制台示例编写了它们并进行了测试。但是,当我使用http服务器时,不会调用来自库的回调。

让我一步一步解释。该库以异步方式从设备接收HID消息。回调在主线程中调用。应该有一个允许接收这些消息的事件循环。所以对于Mac OS,我只是做

CFRunLoopRunInMode(kCFRunLoopDefaultMode, milliseconds/1000.0, false) ;

在while循环中模拟C ++中的事件循环。当我用Nan编写绑定时,我认为我不需要这部分代码,因为Node的事件循环将为我带来(当我只是运行服务器时)。但是,不会调用C ++回调。

如果我添加一个绑定来运行CFRunLoopRunInMode,我会收到我想要的HID消息,但主线程被阻止,服务器无法正常工作。

然后我尝试放setInterval/setImmediate/setTimeout/nextTick并在那里调用CFRunLoopRunInMode。它适用于大约一百个回调(HID消息),然后我再也没有收到C ++回调。

我认为,我需要能够在不阻塞主线程的情况下管理C ++回调的东西。希望我解释清楚,如果我在术语/技术细节方面犯了错误,那就很抱歉。

0 个答案:

没有答案