Я пытаюсь создать подписчика событий javascript для NServicebus, и я хотел бы знать, верны ли мои мысли и есть ли в этом дизайне какие-либо распространенные ловушки.
Я ставлю следующие компоненты:
Контроллер шины ASP.NET MVC (асинкконтроллер)
- receives subscriptions from the javascript clients and returns some sort of sessionId for the client to use in further communication.
- async ActionMethod Receive, который вернет сериализованное сообщение EventMessage в формате json.
- имеет общий обработчик сообщений, который будет фильтровать и ставить в очередь события для клиентов, подписавшихся на него.
JavaScript-клиент
- can subscribe to 1 or more events using the subscribe action method of the BusController
- может получать события путем длительного опроса метода Receive BusController с полученным идентификатором сеанса.
Есть несколько проблем:
- How to detect when a client disconnects?
- I've thought about a simple timout system, which tells the client to re-initiate the connection with the Receive Action Method
- Меня беспокоит производительность универсального обработчика сообщений в контроллере шины, обрабатывающего все сообщения в моей системе. Кто-нибудь еще имел опыт с этим?