我想创建一个将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的方法。任何人都可以给我任何指示开始吗?
非常感谢!
答案 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)
这里有工作插件的链接: