通过iosocket向Meteor发送数据,但不是从Meteor客户端发送数据(搭载Meteor的io-socket)

时间:2014-07-16 15:36:00

标签: javascript node.js meteor socket.io

我想从第三方域上的一小部分Javascript向Meteor服务器发送一些数据。我想发送很多小东西,所以我想使用io-socket。

我可以想象一下这样做的几种方法:

  1. 连接到meteor的socket-io和" piggyback"它。发送自定义事件(命名空间以避免冲突),并以某种方式在服务器端捕获这些事件。但我无法在服务器上找到要附加的套接字对象!

  2. 连接到meteor的socket-io,假装是流星客户端。使用服务器端的标准流星函数捕获消息。没有很多协议,是否有可能像流星客户端一样说话?

  3. 在服务器上打开第二个IO套接字侦听器,并将客户端附加到该套接字侦听器。为此,我需要找到' app'对象

  4. 运行一个完全独立的Node进程,让客户与之对话;它可以保存在Meteor使用的同一个MongoDB中。我能做到这一点,但我喜欢把所有东西都放在一个过程中的想法。此外,我不确定它是否会在Meteor中触发更新事件。

  5. 我真的很喜欢#1的帮助:我在哪里可以找到服务器上的iosocket对象?

    如果做不到,#2可行吗?我怎么能像流星客户那样说话?

1 个答案:

答案 0 :(得分:1)

你提到了一些不错的选择,而DDP客户端可能是最强大的选择。但是,您可以使用webapp包(meteor add webapp)设置正常的Node.js REST API端点。

WebApp.rawConnectHandlersWebApp.connectHandlers只是您可以附加连接/表达中间件或处理程序的实例。

如果您直接写入MongoDB,只要您设置oplog observe driver,它就会在Meteor中触发事件。