使用 SignalR,我想知道在以下情况下设置集线器的最佳方法是什么:假设我有一个网络赌场应用程序(只是为了好玩),它有三个游戏,扑克、二十一点和老虎机。扑克和二十一点都是多人游戏,因此它们具有聊天功能,而老虎机则没有。好的,为了支持这一点,我正在考虑以下列方式设置我的集线器。
BaseHub(处理扑克、二十一点和老虎机常见的连接内容)
PokerHub : BaseHub(处理扑克游戏)
BlackjackHub : BaseHub(处理二十一点游戏)
SlotsHub : BaseHub(处理老虎机游戏)
ChatHub(处理聊天功能)
我正在考虑让这个网络应用程序的扑克页面连接到 PokerHub 以及 ChatHub 和二十一点页面会做类似的事情。Slots 页面显然只会连接到 SlotsHub。
现在,我不确定的是:Poker/BlackjackHub 页面是否应该同时连接到 PokerHub/BlackjackHub 和 ChatHub,或者有什么方法可以让它们只连接到 PokerHub/BlackjackHub 并将聊天功能委托给 Chat中心?在那种情况下,我可能会创建一个接口 IHasChat 或类似的东西。在任何一种情况下,ChatHub 是否也应该扩展 BaseHub?目前 BaseHub 只实现了 IConnected、IDisconnect 并且还处理了基本的 Group 功能(JoinGroup、LeaveGroup)。另外,BaseHub 是否应该是共享实例(单例)?
最后,如果您认为我的做法完全错误,请告诉我。这是我的第一个 SignalR 项目,我知道我不是这方面的专家。另外,我知道这里实际上有几个问题。如果您能回答其中任何一个或所有问题,无论哪种方式,我都非常感激。
谢谢你,汤姆