我目前在 Azure 网站上使用 signalR 使用单个实例将数据推送到客户端。没问题。
我们将项目拆分为单独的 web/worker 和 wcf 角色,以便我们可以独立扩展它们。
该网站将像这样工作。
方案 A
用户向 Web 角色提交一些数据,并将其放入服务总线队列中,为工作人员 A 做好准备,向工作人员 A 发送一条消息,说明已添加新项目以防其空闲(以节省轮询)。当工作人员 A 处理完它后,将消息发送回 Web 角色,然后推送给特定的客户端。
场景 B
在 wcf 角色中接收数据并将其放入不同的服务总线队列中,为工人 B 做好准备,wcf 角色向工人 B 发送消息,说明已添加新项目,以防其空闲。当工作人员 B 处理完它后,向 Web 角色发送一条消息并将其推送给特定的客户端。
下图很糟糕:
我将为用户的 Web 角色启用 signalR 服务总线背板。我不确定的是如何让我的角色相互交流。
我需要:
网络角色 => 工人 A
工人 A => 网络角色
wcf 角色 => 工人 B
工人 B => 网络角色
我是否在 web、worker A 和 worker B 上都创建了带有服务总线主题的集线器?然后以某种方式与 signalr .net 客户端连接?如何确保它适用于网络角色的所有实例而不公开?
出于某种原因,数百个客户端通过 JavaScript 连接到我的 Web 角色中心似乎很简单,但尝试连接一些内部的,我不太明白。