Ситуация следующая, есть сервер MajorDoMo дома и аналогичный сервер на даче. Хочу реализовать передачу данных ( датчики и прочие события) с сервера дачи на сервак (основной пусть так называется) домашний.
Все, что пока придумал, это передача GET запросов между серверами. Может подскажет кто идейку на эту тему?
Способы коммуникации MajorDoMo с MajorDoMo
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Способы коммуникации MajorDoMo с MajorDoMo
GET-запросы, веб-переменные, общий MQTT-серверZaezd2008 писал(а):Ситуация следующая, есть сервер MajorDoMo дома и аналогичный сервер на даче. Хочу реализовать передачу данных ( датчики и прочие события) с сервера дачи на сервак (основной пусть так называется) домашний.
Все, что пока придумал, это передача GET запросов между серверами. Может подскажет кто идейку на эту тему?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 165
- Зарегистрирован: Чт ноя 13, 2014 8:56 pm
- Благодарил (а): 23 раза
- Поблагодарили: 7 раз
Re: Способы коммуникации MajorDoMo с MajorDoMo
Про MQTT интересно, но не понятно: общий сервер, соответственно можно получать данные с датчиков и прочее. А как в этом случае получить событие из самой системы?
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Способы коммуникации MajorDoMo с MajorDoMo
А надо ли это? Лично у меня три системы общаются полностью на GET запросах. Каждая система сама знает, какие свои данные она должна передавать другой системе. Если данные не передаются долгое время, то у принимающего объекта свойство Alive становится =0 и при этом система зовёт админа.
На самом деле, удалённой системе которая совершает контроль, совершенно не интересно знать все, что твориться в подотчетной системе. Достаточно получить только результат её работы. Ну а если по какой то причине хочется самому спрашивать удаленную систему, то опять же GET в помощь. Вызывай нужные методы удаленной системы. Эти методы должны собрать нужные данные и отправить их ответом на запрос.
Рассмотрим к примеру ситуацию с контролем, что удаленная система работает. Проще говоря Ping.
Вариант 1:
У контролирующей системы есть объект. У него есть свойство alive. Удаленная система каждую минуту сама отправляет GET запрос. При этом у объекта контролирующей системы каждый раз обновляется время последнего изменения. Если оно устареет, то контролирующая система поднимет панику.
Вариант 2:
В удаленной системе есть метод ping. Контролирующая система каждую минуту сама спрашивает удаленную систему. Шлет Get запрос с вызовом метода ping (в методе можно посмотреть пример, как вызвать его по сети). Если контролирующая система не получает ответ, то поднимает панику.
На самом деле, удалённой системе которая совершает контроль, совершенно не интересно знать все, что твориться в подотчетной системе. Достаточно получить только результат её работы. Ну а если по какой то причине хочется самому спрашивать удаленную систему, то опять же GET в помощь. Вызывай нужные методы удаленной системы. Эти методы должны собрать нужные данные и отправить их ответом на запрос.
Рассмотрим к примеру ситуацию с контролем, что удаленная система работает. Проще говоря Ping.
Вариант 1:
У контролирующей системы есть объект. У него есть свойство alive. Удаленная система каждую минуту сама отправляет GET запрос. При этом у объекта контролирующей системы каждый раз обновляется время последнего изменения. Если оно устареет, то контролирующая система поднимет панику.
Вариант 2:
В удаленной системе есть метод ping. Контролирующая система каждую минуту сама спрашивает удаленную систему. Шлет Get запрос с вызовом метода ping (в методе можно посмотреть пример, как вызвать его по сети). Если контролирующая система не получает ответ, то поднимает панику.