Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2018, 06:45
Интересующийся
Отправить личное сообщение для jtag Посмотреть профиль Найти все сообщения от jtag
 
Регистрация: 12.01.2016
Сообщений: 19

На каком протоколе реализовать обмен между двумя серверами.
Всем добрый день. Посдкажите пожалуйста как можно сделать передачу между двумя серверами. Плохо представляю шаблон. Какой протокол использовать tcp или http? Был один из вариантов на tcp.
Первый сервер:
Создаю сервер для прослушки: net.createServer().listen(9999)
И создаю сокет для отправки данных socket = new net.Socket()
Второй сервер:
Создаю сервер net.cteateServer().listen(8888)
И создаю сокет socket = net.Socket()
Получается данные передаются в одну сторону по одному порту, в обратную сторону по другому порту.
Но предполгаю что получится низкоуровнего. И может использовать лучше http протокол. Если допустим настроить на каждом сервере express js?
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2018, 11:29
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

http работает поверх tcp:
Сетевая модель OSI
Конкретный выбор зависит от задач, но судя по вопросу - вам лучше по http.

Сообщение от jtag
Получается данные передаются в одну сторону по одному порту, в обратную сторону по другому порту.
Если проблема только в этом, то ничего не мешает на обоих серверах слушать одинаковые порты.
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2018, 11:58
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Один сервер - "сервер", другой сервер - "клиент".
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2018, 14:26
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

предлагаю использовать socket.io, супер изи )

https://socket.io/

там и fullduplex, и автореконнект, и ...
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2018, 10:19
Интересующийся
Отправить личное сообщение для jtag Посмотреть профиль Найти все сообщения от jtag
 
Регистрация: 12.01.2016
Сообщений: 19

Сообщение от SuperZen Посмотреть сообщение
предлагаю использовать socket.io, супер изи )

https://socket.io/

там и fullduplex, и автореконнект, и ...
Всем спасибо за ответы. Тоже задумывался, про socket.io. Уже написал обмен сообщениями на модули http и request. Но сейчас возникли некоторые непонятности. Планируется установить главный сервер с бд, и примерно несколько десятков вторичных серверов с локальной бд, которые будут общаться с главным сервером. Сможет ли socket.io обеспечить паралельное получение данных на центр. сервере?, передачу длинных json строк после sql?
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2018, 12:03
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

Сообщение от jtag Посмотреть сообщение
Всем спасибо за ответы. Тоже задумывался, про socket.io. Уже написал обмен сообщениями на модули http и request. Но сейчас возникли некоторые непонятности. Планируется установить главный сервер с бд, и примерно несколько десятков вторичных серверов с локальной бд, которые будут общаться с главным сервером. Сможет ли socket.io обеспечить паралельное получение данных на центр. сервере?, передачу длинных json строк после sql?
Для синхронизации бд после выхода из оффлайн любого из участников, я нашел только два кандидата PouchDB и GunDB (можно как middleware в express поставить), и чтобы они могли работать и на node и в browser. И клиенты, могу подключать из-за NAT.

Сможет ли socket.io обеспечить паралельное получение данных на центр. сервере?, передачу длинных json строк после sql?
Сможет, просто если делать руками, например, один из вторичных серверов ушел в оффлайн, на главный поступали данные, после выхода из оффлайн вторичный сервер должен делать что? Сделать запрос, и обновить локальную бд? Если условия простые, можно и так.

https://socketcluster.io - можно еще такую штуку посмотреть
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2018, 19:43
Интересующийся
Отправить личное сообщение для jtag Посмотреть профиль Найти все сообщения от jtag
 
Регистрация: 12.01.2016
Сообщений: 19

все данные находяться в mysql, пока не можем менять бд. Продолжу пока допиливать приложение на нативном http модуле. Непонятна одна ситуация: если запущен отдельный процесс через child_process.fork() на центр сервере, который отправляет данные раз в час по http, выделять ли для него дополнительный порт, либо с одного сервера со всех процессов отправлять данные через один порт. Возможно существует какая - либо литература по организации бэкэнд приложений и посторению правильной архитектуры на протоколах?
Ответить с цитированием
  #8 (permalink)  
Старый 18.08.2018, 05:48
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

А вам не всё-равно с какого порта пойдут данные? Порт обязателен для слушающей стороны, а для соединяющейся его можно не указывать - в этом случае система сама его выберет случайным образом.

Порт (компьютерные сети)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен сообщениями между вкладками Nikolay37 Events/DOM/Window 2 05.07.2017 14:43
Обмен событиями между видами khusamov ExtJS 4 26.03.2017 23:09
Центрирование среднего блока между двумя float Siend (X)HTML/CSS 3 14.09.2015 14:08
jsonp обмен данными между серверами wcb-falcon AJAX и COMET 8 27.06.2013 13:47
Обмен сообщениями между js загруженной страницы и расширением для браузера prihod Events/DOM/Window 6 11.12.2011 21:51