我已经在OS X上运行了dbus,我可以通过C发送消息。现在我试图在我的node.js服务器中设置node-dbus,但它的抱怨是因为我还没有指定服务器地址。我没有必要指定一个用于在C ++代码中发送消息,所以我该如何获取地址?
我的服务器是用
调用的dbus-daemon --nofork --session
顺便说一句,我刚刚了解到OS X上不支持抽象套接字,所以我不得不在抽象套接字上对dbus-native依赖项进行争论,但我还是会这样做的。仍然需要弄清楚如何进入会话总线。
在我的C ++代码中,我只能得到会话总线:
::dbus_bus_get(DBUS_BUS_SESSION, &error);
我还没有能够验证邮件是否实际发送,但它没有报告任何错误(如果守护程序未运行,它会报告错误,表明它正在查找守护程序)。
再多一点后,我发现我的守护进程打开了这个插座:
/private/tmp/com.apple.launchd.jwK0ehYjCd/unix_domain_listener
所以我尝试了这个:
export DBUS_SESSION_BUS_ADDRESS=unix:path=/private/tmp/com.apple.launchd.jwK0ehYjCd/unix_domain_listener
这允许它进一步发展,但它给了我这个错误(这可能是由于抽象套接字的问题,我不确定):
connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:56:20
connect deprecated limit: Restrict request size at location of read node_modules/express/node_modules/connect/lib/middleware/multipart.js:86:15
connect deprecated methodOverride: use method-override npm module instead config/initializers/30_middleware.js:16:20
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1129:14)
at listen (net.js:1155:10)
at net.js:1253:9
at dns.js:85:18
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
at node.js:814:3
非常感谢任何帮助。谢谢!