Azure 服务总线通知中心是不是与 websockets 和 javascript 一起使用?
Posted
技术标签:
【中文标题】Azure 服务总线通知中心是不是与 websockets 和 javascript 一起使用?【英文标题】:Do Azure Service Bus Notification Hubs work with websockets and javascript?Azure 服务总线通知中心是否与 websockets 和 javascript 一起使用? 【发布时间】:2013-03-18 20:22:40 【问题描述】:我对使用 Azure 服务总线通知中心很感兴趣。然而,我的第一个“客户端”将是一个基于 websocket 的连接到一个带有 Knockout 的 ASP.NET MVC 站点。目前,我正在尝试 SignalR 向客户端推送通知。
但是,如果我可以使用 SB 通知中心,这看起来会容易得多。所有the examples 都是Windows 或ios。
能否将 Azure 服务总线通知中心与基于 WebSocket 的 html 客户端结合使用?
【问题讨论】:
对此有更新的状态,请看我的回答。当我听到更多消息时,我会更新这个。 【参考方案1】:我是 Service Bus 团队的项目经理。 没有计划支持 HTML 上的 WebSockets 作为通知中心的输出管道。 目前最好的办法是使用 SignalR,它可以使用服务总线进行横向扩展。
通知中心的哪些特点让您认为它比 SignalR 更可取?
【讨论】:
我的选择是 SignalR + Service Bus,或者像 Pusher 这样的专用服务。使用 SignalR,我将其部署在 Azure 中的 Web 角色上。它的扩展速度可能与我的网络使用速度不同。通过通知中心之类的专用服务实现这一点意味着我不必考虑与托管 SignalR 相关的服务器端问题,或者它对我的应用程序的其余部分的影响。 感谢您回答道格。这是非常有用的反馈。 我对使用通知中心而不是 SignalR 将负载移出服务器很感兴趣。这个想法是通过让 Azure 将新消息通知 Web 浏览器来将负载减少一半,从而消除我们服务器上对持久连接的需求。在富客户端时代,我们正试图尽可能减少服务器上的负载 最新的update on this (March-2016) 与此答案相矛盾。【参考方案2】:我们花了几天时间尝试按照您的描述进行操作,但我们无法让 SignalR/WebSockets 在 Azure Cloud 上运行。 SignalR/WebSockets 每次都失败,产生连接失败/重新连接的无限循环。我们能够让 SignalR/LongPolling(不是 WebSockets)在 Azure 云上成功运行。从那以后,我们了解到 Azure Cloud 上的 VM 显然根本不支持 WebSockets。我们的经验表明,您可能无法将基于 WebSocket 的 HTML 客户端与在 Azure 云上运行的 SignalR 一起使用,但您可能可以让 LongPolling 正常工作。
【讨论】:
这对我在 Azure 云服务上运行良好。有很多关于如何使这项工作的文章。您可能想尝试网站示例(与 VM 不同,但至少应该看看您是否在其他地方有问题)blogs.msdn.com/b/timlee/archive/2013/02/27/…【参考方案3】:虽然现在没有支持。由于这些功能请求,此答案可能会在将来更新(顺便标记为“已计划”)。
您还可以将您的投票添加到这些以更快地推动它们: https://feedback.azure.com/forums/218849-notification-hubs/suggestions/4621850-add-support-for-azure-notification-hubs-to-push-me
这里:
https://feedback.azure.com/forums/34192--general-feedback/suggestions/32466415-web-socket-support-in-notification-hubs
【讨论】:
以上是关于Azure 服务总线通知中心是不是与 websockets 和 javascript 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章