2015-06-02 8 views
0

Я новичок в Node.js, а также довольно новый для связи с сервером. Я попытался найти предыдущие ответы, но они часто беспокоятся о связи между сервером и клиентом. У меня есть другой случай, так что вам нужна ваша помощь.Node.js Удаленный запуск и связь между серверами

Предположим, что у нас есть три системы, localhost (то есть ноутбук) и два облачных сервера. Я хочу закодировать js-приложение в локальном хосте, которое разбивает массив данных на два блока и отправляет их на облачные серверы (блок №1 на сервер # 1 и блок № 2 на сервер # 2). Получив их, два удаленных сервера начинают работать одновременно. Затем они выполняют одни и те же вычисления и присылают результаты своих вычислений друг другу, если они имеют обновленные значения.

В этом случае я хочу заняться смелыми предложениями. Я считаю, что использование модуля «socket.io» будет правильным подходом к управлению этим (особенно, удаленным запуском и связью), но не имеет четкой идеи при разработке кодов. Кроме того, понимание «socket.io» само по себе немного сложно. Если вам нужна дополнительная спецификация по сценарию, прокомментируйте.

+0

Ваш вопрос слишком широк - слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких абзацах. – Kmeixner

+0

Спасибо за ваш интерес, @Kmeixner. Да, мой вопрос может быть слишком широким. Вкратце, я хочу решить: 1) отправка данных с локального компьютера на распределенные серверы; 2) запуск удаленных серверов при получении данных; 3) связь между распределенными серверами при вычислении конкретного приложения. Я хочу знать, какой внешний модуль или встроенный модуль следует использовать на каждом шаге. – ridefly

ответ

0

Наряду с socket.io, проверьте модуль с именем Faye (http://faye.jcoglan.com/node.html). Я использую его в течение нескольких лет, и мне это очень нравится. 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 клиентскими программами, которые отвечают на сообщения с сервера.

Вам необходимо будет заменить 127.0.0.1 вашим конкретным URL-адресом и использовать номера портов и имена каналов, более применимые к вашему конкретному приложению.

+0

Цените свои краткие коды и объяснения !! – ridefly

Смежные вопросы