Net6 mvc, развернут с статическом ip адресе и порту,
который слушает определённый порт
есть физические устройства, которые шлют на бэк пакеты с информацией об устройстве.
С проекта также есть возможность управлять этими устройствами.
на текущий момент:
на бэке прописан ListenAnyIP(номер порта, _o => _o.UseConnectionHandler<HandlerConnnection>());
в котором слушается нужный порт и через
UseConnectionHandler в HandlerConnnection попадает контекст соединения.
пакеты принимаются, клиенты добавляются в ConcurrentDictionary<string, ConnectionContext>. - далее записывается инфа в БД итд итп, это не суть...
Проблема:
нужно реализовать постоянное соединение с устройствами, для того чтобы устройства постоянно
оставались на связи, можно было управлять ими с фронта mvc не теряв соединение с ними
( конечно без объективных причин) и тут проблема - контекст меняется, связь теряется...
устройств может быть в рабочей схеме 500 и более
Как думаете для такой связки, что лучше использовать?
можно ли использовать например HostedService c Worker' ом, а в него запихнуть tcplistener /sockets ?
Буду рад любой инфе, ссылку на git с примером, куда угодно
Если кто-то готов поучаствовать, готов оплатить участие за разумные деньги.
я не оч понимаю а нельзя условно просто слушать события и делать действия в соответсвии, типо через signalR слать события, ну может не особо понял контекст
там скорее всего какойто iot и тупые железяки которые умеют держать только tcp соединение и не знают ни про какие вебсокеты и signalr
я пока не понял проблемы, есть условно события - accept соединения или его обрыв, по этим двум штукам добавляется/удаляется твой девайс в твой concurrentDictionary
Обсуждают сегодня