Node.js ZeroMQ和Sails.js

Node.js ZeroMQ和Sails.js,node.js,sails.js,zeromq,Node.js,Sails.js,Zeromq,在Sails.JS应用程序中添加ZeroMQ套接字的推荐方法是什么 我应该定义一个sails钩子来处理套接字配置和连接,并在不同的控制器中使用一个全局范围的套接字对象,还是有其他更好的解决方案?如果您想做的是设置一个ZeroMQ套接字来服务于整个应用,然后使用定制的帆钩将是一个非常好的解决方案。您可以将套接字对象添加为钩子的属性(例如,将其公开为sails.hooks.zeromq.socket),而不是将其作为全局对象,或者将其范围保持在钩子文件的本地,并通过钩子公开其方法(例如sails.h

在Sails.JS应用程序中添加ZeroMQ套接字的推荐方法是什么


我应该定义一个sails钩子来处理套接字配置和连接,并在不同的控制器中使用一个全局范围的套接字对象,还是有其他更好的解决方案?

如果您想做的是设置一个ZeroMQ套接字来服务于整个应用,然后使用定制的帆钩将是一个非常好的解决方案。您可以将套接字对象添加为钩子的属性(例如,将其公开为
sails.hooks.zeromq.socket
),而不是将其作为全局对象,或者将其范围保持在钩子文件的本地,并通过钩子公开其方法(例如
sails.hooks.zeromq.send
sails.hooks.zeromq.on

Sails目前并没有提供一种跨项目共享自定义钩子的简单方法,但我们的路线图上有一个系统,该系统与我们目前为Generator提供的系统非常相似,您可以在
.sailsrc
文件中添加类似的内容:

"hooks": {
    "zeromq": "path/to/zeromq/hook/code"
}
因此,如果您为ZeroMQ制作一个钩子并将其开源,那么它对其他人来说可能是一个有价值的资源


现在没有太多关于自定义钩子的文档,但YouTube上有一个详细讨论了这个主题的文档。

感谢您的回答,我按照钩子的方式完成了所需的功能,尽管它不像我希望的那样通用。我的需求与在NoSQL DB中存储JSON文档非常相似,但我不需要直接发送到DB,只需要将它推送到另一个ZeroMQ组件。对于这个用例,我开始觉得也许水线适配器(只有一个CREATE方法)可以更好地适应,在推送之前增加模型验证的价值(我现在正在手动进行)。这有意义吗?