ZeroMQ 和 Sails.js
Posted
技术标签:
【中文标题】ZeroMQ 和 Sails.js【英文标题】:ZeroMQ and Sails.js 【发布时间】:2014-09-08 13:00:48 【问题描述】:在 Sails.JS 应用程序中添加 ZeroMQ 套接字的推荐方法是什么。
我应该定义一个 Sails 钩子来处理套接字配置和连接,并在不同的控制器中使用一个全局范围的套接字对象,还是有其他更好的解决方案?
【问题讨论】:
【参考方案1】:如果您要做的是设置一个 ZeroMQ 套接字来为整个应用程序提供服务,那么使用自定义 Sails 挂钩将是一个非常好的解决方案。除了将套接字对象设置为全局对象外,您还可以将其添加为钩子的属性(例如,将其公开为sails.hooks.zeromq.socket
),或者将其本地限定为钩子文件并通过钩子公开其方法(例如sails.hooks.zeromq.send
, sails.hooks.zeromq.on
)。
Sails 目前不提供跨项目共享自定义挂钩的简单方法,但它在我们的路线图中实施一个类似于我们目前为 generators 提供的系统,您可以在其中添加类似这个到.sailsrc
文件:
"hooks":
"zeromq": "path/to/zeromq/hook/code"
因此,如果您为 ZeroMQ 制作一个钩子并将其开源,它可能对其他人来说是一种宝贵的资源!
目前没有大量关于自定义挂钩的文档,但 YouTube 上有这个 riveting video 详细讨论了该主题。
【讨论】:
感谢您的回答,我遵循了钩子方式并最终获得了所需的功能,尽管它不像我想要的那样通用。我的需要非常类似于将 JSON 文档存储在 NoSQL DB 中,但我不需要直接发送到 DB,只需将其推送到另一个 ZeroMQ 组件。对于这个用例,我开始觉得也许 Waterline 适配器(只有一个 CREATE 方法)可能更适合,在推送之前增加模型验证的价值(我现在正在手动进行)。有意义吗?以上是关于ZeroMQ 和 Sails.js的主要内容,如果未能解决你的问题,请参考以下文章