2011-08-29 144 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