我想从第三方域上的一小部分Javascript向Meteor服务器发送一些数据。我想发送很多小东西,所以我想使用io-socket。
我可以想象一下这样做的几种方法:
连接到meteor的socket-io和" piggyback"它。发送自定义事件(命名空间以避免冲突),并以某种方式在服务器端捕获这些事件。但我无法在服务器上找到要附加的套接字对象!
连接到meteor的socket-io,假装是流星客户端。使用服务器端的标准流星函数捕获消息。没有很多协议,是否有可能像流星客户端一样说话?
在服务器上打开第二个IO套接字侦听器,并将客户端附加到该套接字侦听器。为此,我需要找到' app'对象
运行一个完全独立的Node进程,让客户与之对话;它可以保存在Meteor使用的同一个MongoDB中。我能做到这一点,但我喜欢把所有东西都放在一个过程中的想法。此外,我不确定它是否会在Meteor中触发更新事件。
我真的很喜欢#1的帮助:我在哪里可以找到服务器上的iosocket对象?
如果做不到,#2可行吗?我怎么能像流星客户那样说话?
答案 0 :(得分:1)
你提到了一些不错的选择,而DDP客户端可能是最强大的选择。但是,您可以使用webapp
包(meteor add webapp
)设置正常的Node.js REST API端点。
WebApp.rawConnectHandlers
和WebApp.connectHandlers
只是您可以附加连接/表达中间件或处理程序的实例。
如果您直接写入MongoDB,只要您设置oplog observe driver,它就会在Meteor中触发事件。