Size: a a a

Node.js — русскоговорящее сообщество

2021 April 16

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Все контроллеры в одной локальной сети или разных?
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
В разных. Предполагается доступность только 443 порта через NAT.
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Уже смотрел, какие есть придуманные алгоритмы для синхронизации в распределённых транзакциях?
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
В общем, тут 99.99% лучшего решения не сыскать. Нужно только одно - проконтролировать, что контроллер не оборвал соединение.
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Откуда этот вывод?
Эта задача уже была решена разными способами, в том числе описана в различных исследованиях, N-дестилетий назад.
Я бы начал с того, что поискал их.
Не все эти решения могут быть интуитивно очевидными, и их можно не видеть, если они не примитивные
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Да. Но нужно помнить, что алгоритмы расписаны для серверов. И подразумевают решения для производительных систем. У меня контроллер. У которого вся фаловая система 1мб. А памяти 30кб доступно. Т.е. из всего этого перечня я еще и выбираю адекватные ресурсам.
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Смотри, мы можем подиччкутировать на эту тему, но это не приведет к изменению концепции. Т.е. она действительно осмысленная. Мне нужно простое решение, которой СРАЗУ закроет все мои проблемы. Т.е. их не будет совсем.
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Но в этих условиях выбрал HTTP протокол, как основной?
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Просто нужно получить событие разрыва соединения со строны клиента.
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Именно. Потому, что HTTP это единственный универсальный протокол который доступен из-за NAT. Разве что можно WEBSocket ще смотреть как двунарпавленный. Но там есть свои серьезные проблемы.
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Его нет в TCP
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
> но это не приведет к изменению концепции
Почему?
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Эм... TCP гаранти доставку. Т.е. ты гарантированно будешь знать доставлены ли твои данные. В этом, собственно и есть гарантия. И если клиент закрыл соединение, то данные не будут доставлены, а ты получишь ошибку. Это и есть нештатное завершение сессии соединения.
источник

N

Nikita in Node.js — русскоговорящее сообщество
ой не всегда)
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Другое дело, что ты узнаешь это не сразу. А через timeout
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Гарантия доставки немного не это обозначает

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

RP

Roman Piontik in Node.js — русскоговорящее сообщество
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Нужна ошибка - 5 = Input/output error
источник

RP

Roman Piontik in Node.js — русскоговорящее сообщество
Да и вообще, получение ошибок по сокету. Если система не сообщает об ошибках в сокете - все удалось.
источник

DL

Dima Lamkin in Node.js — русскоговорящее сообщество
еще есть mqtt
источник