я уже так сделал
структура такая:
1) сервис опрашивающий железки по СОМ-портам (ничего не знает о железках только запрос-ответ, и это долго). В зависимости от интерфейса, к сервису может быть подключено от 1 до N - железок.
2) сервис который постоянно опрашивает сервис №1 держа данные актуальными и в быстром доступе для следующего сервиса. Таких сервисов могут быть десятки в системе.
3) сервис который запрашивает данные от нескольких сервисов №2 (сервис №3 знает всё о железках, и их протоколах, а так же предоставляет данные в виде Параметр=Значние, а не в бинарном виде)
Общение между 1-2-3 производится по WebSoсket, тут всё просто точка-точка, нет сторонних клиентов.
А к сервису №3 тянутся несколько клиентов.
Так вот, когда клиенты тянут данные от сервиса №3 по классическому REAST API, всё ок, но неспешно (ведь есть WebSocket!).
Я для ускорения решил перевести №3 на общение с клиентами на WebSoket и ловлю какие-то баги,
Клиент делает ws.send в сторону №3 и заводит таймер на 3 сек в ожидании таймаута. Получается что все клиенты бодро выгребают данные от №3 со скоростью около 300 сообщений в секунду, так длится секунд 5-6. Потом один из клиентов (рандомно) ловит 2-3 штуки "тайм-аутов" (т.е. №3 не ответил ему в течение 3 сек, хотя казалось бы почему?!), далее запрос-ответ возобновляется с прежней скоростью, потом опять "затык" - в общем такими волнами...
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
структура такая:
1) сервис опрашивающий железки по СОМ-портам (ничего не знает о железках только запрос-ответ, и это долго). В зависимости от интерфейса, к сервису может быть подключено от 1 до N - железок.
2) сервис который постоянно опрашивает сервис №1 держа данные актуальными и в быстром доступе для следующего сервиса. Таких сервисов могут быть десятки в системе.
3) сервис который запрашивает данные от нескольких сервисов №2 (сервис №3 знает всё о железках, и их протоколах, а так же предоставляет данные в виде Параметр=Значние, а не в бинарном виде)
Общение между 1-2-3 производится по WebSoсket, тут всё просто точка-точка, нет сторонних клиентов.
А к сервису №3 тянутся несколько клиентов.
Так вот, когда клиенты тянут данные от сервиса №3 по классическому REAST API, всё ок, но неспешно (ведь есть WebSocket!).
Я для ускорения решил перевести №3 на общение с клиентами на WebSoket и ловлю какие-то баги,
Клиент делает ws.send в сторону №3 и заводит таймер на 3 сек в ожидании таймаута. Получается что все клиенты бодро выгребают данные от №3 со скоростью около 300 сообщений в секунду, так длится секунд 5-6. Потом один из клиентов (рандомно) ловит 2-3 штуки "тайм-аутов" (т.е. №3 не ответил ему в течение 3 сек, хотя казалось бы почему?!), далее запрос-ответ возобновляется с прежней скоростью, потом опять "затык" - в общем такими волнами...