【问题标题】:Javascript messagehandler for NServicebusNServicebus 的 Javascript 消息处理程序
【发布时间】:2011-08-29 16:07:57
【问题描述】:

我正在尝试为 NServicebus 创建一个 javascript 事件订阅者,我想知道我的想法是否有效,以及此设计中是否存在任何常见缺陷。

我正在使用以下组件:

  1. ASP.NET MVC 总线控制器(ASyncController)

    • 从 javascript 客户端接收订阅并返回某种 sessionId 供客户端在进一步通信中使用。
    • async ActionMethod Receive 将返回一个 json 序列化的 EventMessage。
    • 有一个通用的消息处理程序,它将为订阅它的客户过滤和排队事件。
  2. javascript 客户端

    • 可以使用 BusController 的 subscribe 操作方法订阅 1 个或多个事件
    • 可以通过使用接收到的 sessionId 长轮询 BusController 的 Receive 方法来接收事件。

有几个问题:

  1. 如何检测客户端何时断开连接?
    • 我想过一个简单的超时系统,它告诉客户端重新启动 与接收操作方法的连接
  2. 我担心总线控制器中通用消息处理程序的性能,它处理我系统中的所有消息。其他人有这方面的经验吗?

【问题讨论】:

    标签: javascript asp.net-mvc json nservicebus


    【解决方案1】:

    您总是可以尝试一些开箱即用的方法。 http://pservicebus.codeplex.com/

    它带有一个 javascript api,允许您像在 .net 代码中一样执行 pub-sub。

    它已经被编码为根据需要使用 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

    【讨论】:

    • 它是否带有 NServicebus 适配器?
    • 不,它没有,它与 NServiceBus 无关。如果您想在 MSMQ 上以与 NServiceBus 中预期的相同格式放置消息,那么您可以编写自己的传输适配器来执行此操作并将其包含在 ESB 传输文件夹中,以便可以将消息以相同格式直接发送到 MSMQ正如 NServiceBus 中所预期的那样。但我认为没有必要,除非你的整个基础设施已经建立在 NServiceBus 之上;因为它不仅可以写入 MSMQ,它还可以写入许多其他协议,如果需要,您可以执行额外的调用 nservicebus 的工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多