• Websocket асинхронные запросы клиентов к одной async функции сервера как организовать?

    @GerasimGerasimov Автор вопроса
    я уже так сделал
    структура такая:
    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 сек, хотя казалось бы почему?!), далее запрос-ответ возобновляется с прежней скоростью, потом опять "затык" - в общем такими волнами...