如何在不同服务器上相互通信的2个节点应用程序?

时间:2015-05-08 04:44:10

标签: node.js sockets

基本上我有中间人网页,这是一个人们可以去不同地点登录和创建服务器(用于游戏)的网站,例如:德克萨斯州,纽约州,芝加哥。

现在我的主应用程序在纽约上运行

我希望有一个在这些服务器上运行的子应用程序,它专门负责创建child_processes以启动服务器。

我正在玩子应用程序运行获取/发布请求,但尝试从节点端发送获取/发布请求是痛苦的,并试图保护它,以便其他人不要只是CURL一个请求并做一些恶意的东西有可能通过套接字或其他方式做到这一点,以便子应用程序连接到主web应用程序的主套接字,然后可以发送一个开始发射或东西到子-apps创建服务器?对不起,如果这没有意义,那么让我们相互交谈就相当新鲜。

2 个答案:

答案 0 :(得分:3)

您可以使两个节点服务器与websocket节点模块“ws”进行通信。您可以通过键入以下命令来安装它:

npm install --save ws

要连接节点应用程序,一个节点应用程序应该侦听端口(例如:3001),这使它充当其他节点应用程序的服务器:

var webSocketServer = require('ws').Server,
wss = new WebSocketServer ({port: 3001, path: '/path'});
wss.on('listening', function() {
    console.info('ws server is listening')
})

然后您可以像这样连接其他节点应用程序:

var WebSocket = require('ws');
var ws  = new WebSocket('ws://www.yourServerDomain.com:3001/path');

现在您可以从双方发送和接收数据,您可以在此link中查看如何执行此操作。

答案 1 :(得分:1)

我建议您使用Message Queues

  

在最简单的层面上,队列消息是应用程序和分立组件在彼此之间发送消息以便可靠通信的一种方式。

在NodeJS中,您可以使用kue

实现队列作业