如何连接到OS X上的会话总线守护程序?

时间:2015-03-11 11:29:40

标签: node.js dbus

我已经在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

非常感谢任何帮助。谢谢!

0 个答案:

没有答案