2011-08-29 152 views
0

我正在嘗試爲NServicebus創建一個javascript事件訂戶,我想知道我的想法是否有效,以及在此設計中是否有任何常見缺陷。NServicebus的Javascript消息處理器

我考慮對以下組件:

  1. ASP.NET MVC BusController(ASyncController)

    • 從JavaScript客戶端接收訂閱和返回某種的sessionId的客戶端使用進一步溝通。
    • 異步ActionMethod Receive將返回一個json序列化的EventMessage。
    • 有一個通用的消息處理程序,它將爲訂閱它的客戶端篩選和排隊事件。
  2. JavaScript客戶

    • 可以使用訂閱的BusController
    • 動作方法可以通過長輪詢接收事件訂閱1個或多個事件的接收的BusController的方法與所接收的sessionId 。

有幾個問題:

  1. 如何當一個客戶端斷開檢測?
    • 我想過一種簡單timout系統,它告訴客戶端重新啓動與 連接的接收操作方法
  2. 我擔心的是一個通用的MessageHandler在buscontroller性能,處理我係統中的所有消息。有沒有其他人有過這方面的經驗?

回答

0

你總是可以嘗試一些開箱即用的東西。 http://pservicebus.codeplex.com/

它帶有一個JavaScript API,允許你做pub-sub,就像你在.net代碼中做的那樣。

它已被編碼爲根據需要使用Http Streaming/Comet,並在使用不支持它的瀏覽器時切換到長輪詢。

以下是使用javascript api pub-sub的示例。 http://pservicebus.codeplex.com/SourceControl/changeset/view/7169bd78a707#pServiceBus%201.0.2%2fSamples%2fJS%20API%20WebChat%2fScripts%2fchat.js

+0

它是否附帶NServicebus適配器? – Rik

+0

不,它與NServiceBus無關。如果您想以與NServiceBus中預期相同的格式將消息放置在MSMQ上,那麼您可以編寫自己的傳輸適配器,將其包含在ESB傳輸文件夾中,以便可以將消息直接發送到MSMQ,格式相同正如NServiceBus所預期的那樣。但是我沒有看到需要,除非你已經將整個基礎架構建立在NServiceBus之上;因爲它可以寫入不只是MSMQ,它可以寫入許多其他協議,然後你可以做額外的工作,如果需要調用nservicebus的東西 – rpgmaker