簡體   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