如何通过tcp socket将meteor服务器连接到另一个tcp服务器

时间:2014-06-09 09:39:12

标签: tcp meteor client

我想创建一个将meteor服务器连接到另一个tcp服务器的meteor应用程序, 那是流星服务器是客户端,另一个tcp服务器是服务器端。

1.它喜欢浏览器的WebSocket,但我想在流星服务器上使用它,而不是在流星客户端上使用它。 WebSocket使用如:

  var tcpServer = "ws://some.tcpServer.org/";
  socket = new WebSocket(tcpServer,options); 
  socket.onopen = function(evt) { onOpen(evt) };
  socket.onclose = function(evt) { onClose(evt) }; 
  socket.onmessage = function(evt) { onMessage(evt) };
  socket.onerror = function(evt) { onError(evt) };

2.可能如下:

  if (Meteor.isServer) {  
    Meteor.startup(function () {
      var tcpServer = "ws://some.tcpServer.org/";
      socket = new socketClient(tcpServer,options); 
      socket.onopen = function(evt) { onOpen(evt) };
      socket.onclose = function(evt) { onClose(evt) }; 
      socket.onmessage = function(evt) { onMessage(evt) };
      socket.onerror = function(evt) { onError(evt) };
    })
  }

3.或者......

  var net = Npm.require('net');
  net.createServer(function(socket){...} is for server side , not fit for my idea.
  Maybe like net.createClient(function(tcpServer, options ){...} , but no this method.

我一直在四处寻找,但我没有看到Meteor的方法。任何人都可以给我任何指示开始吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您所描述的内容存在一些问题。

WebSocket,它通过HTTP工作,而TCP是完全不同的协议。您将无法打开与TCP服务器的WebSocket连接。

要让Meteor服务器通过TCP与另一台服务器通信,您需要使用Node的net API。要在Meteor中使用它,您需要以与Fibers兼容的方式使用异步回调;有关概述和this blog post,请参阅https://stackoverflow.com/a/21542356/586086

答案 1 :(得分:0)

这里有工作插件的链接:

websocketify on atmosphere.com