繁体   English   中英

Node.js远程启动和服务器之间的通信

[英]Node.js Remote Start and Communication between Servers

我是Node.js的新手,也是服务器通信的新手。 我试图找到以前的答案,但是他们经常关心服务器和客户端之间的通信。 我的情况有所不同,因此需要您的体贴帮助。

让我们假设有三个系统,即本地主机(即笔记本电脑)和两个云服务器。 我想在本地主机中编写一个js应用程序,它将一个数据数组切成两个块并将其发送到云服务器 (将块#1发送到服务器#1,将块#2发送到服务器#2)。 接收到它们之后, 两个远程服务器同时开始工作 然后,它们进行相同的计算,如果它们具有更新的值,则将其计算结果相互发送

在这种情况下,我想处理加粗的句子。 我相信使用模块“ socket.io”将是处理此问题的正确方法(尤其是远程启动和通信),但是在设计代码时没有明确的思路。 另外,了解“ socket.io”本身有点棘手。 如果您需要有关该场景的进一步说明,请发表评论。

与socket.io一起,检出名为Faye的模块( http://faye.jcoglan.com/node.html )。 我已经使用了几年了,真的很喜欢它。 Faye是一种发布订阅通信方案,可让您将方案扩展到所需的任意数量的客户端。 要在系统上安装faye,请运行以下命令:

 npm install -g faye

现在,这是您的服务器代码:

var faye = require('faye');

var Server = new faye.NodeAdapter({mount: ('/FayeServer'), timeout: 120});

//now fire the server up on the port 5555
Server.listen(5555);

//subscribe to channel DataChannel
var Subscription = Server.getClient().subscribe("DataChannel", 
    function(dataObject){    console.log(dataObject)    }, 
    function(status) { 
        console.log('Subscription Status: ' + status);
        //send message with two numbers to any client listening to DataChannel
        Server.getClient().publish('/DataChannel', {A:5,B:12});
    });

现在,这是客户端代码:

var faye = require('faye');

//open client to server
var Client = new faye.Client('http://127.0.0.1:5555/FayeServer');

//now subscribe to the channel DataChannel
Client.subscribe('/DataChannel', function(dataObject)
{
    Client.publish('/DataChannel', {C:(dataObject.A * dataObject.B)};
});

还有很多事情可以做,但是有了这个基本框架,您就可以将服务器与N个客户机程序站在一起,以响应来自服务器的消息。

您将需要用特定的URL替换127.0.0.1,并使用更适用于您的特定应用程序的端口号和通道名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM