Обработчик сообщений Javascript для NServicebus

Я пытаюсь создать подписчика событий javascript для NServicebus, и я хотел бы знать, верны ли мои мысли и есть ли в этом дизайне какие-либо распространенные ловушки.

Я ставлю следующие компоненты:

  1. Контроллер шины 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.
    • имеет общий обработчик сообщений, который будет фильтровать и ставить в очередь события для клиентов, подписавшихся на него.
  2. JavaScript-клиент

    • can subscribe to 1 or more events using the subscribe action method of the BusController
    • может получать события путем длительного опроса метода Receive BusController с полученным идентификатором сеанса.

Есть несколько проблем:

  1. 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
  2. Меня беспокоит производительность универсального обработчика сообщений в контроллере шины, обрабатывающего все сообщения в моей системе. Кто-нибудь еще имел опыт с этим?

person Rik    schedule 29.08.2011    source источник


Ответы (1)


Вы всегда можете попробовать что-то, что работает прямо из коробки. http://pservicebus.codeplex.com/

он поставляется с javascript API, который позволяет вам делать pub-sub так же, как вы делаете это в коде .net.

он уже закодирован для использования Http Streaming/Comet по мере необходимости и переключения на длительный опрос при использовании браузера, который его не поддерживает.

Вот пример использования pub-sub javascript api. http://pservicebus.codeplex.com/SourceControl/changeset/view/7169bd78a707#pServiceBus%201.0.2%2fSamples%2fJS%20API%20WebChat%2fScripts%2fchat.js

person rpgmaker    schedule 29.08.2011
comment
Поставляется ли он с адаптером NServicebus? - person Rik; 30.08.2011
comment
Нет, это не имеет ничего общего с NServiceBus. Если вы хотите размещать сообщения в MSMQ в том же формате, что и в NServiceBus, вы можете написать свой собственный транспортный адаптер, который делает именно это, и включить его в папку ESB Transports, чтобы сообщение можно было отправлять непосредственно в MSMQ в том же формате. как и ожидалось в NServiceBus. Но я не вижу необходимости, за исключением того, что вся ваша инфраструктура уже построена поверх NServiceBus; поскольку он может писать не только в MSMQ, но и во многие другие протоколы, по которым вы можете выполнять дополнительную работу по вызову nservicebus, если это необходимо. - person rpgmaker; 30.08.2011