gpt4 book ai didi

signalr - SignalR 中的多个集线器(设计)

转载 作者:行者123 更新时间:2023-12-03 20:55:10 27 4
gpt4 key购买 nike

使用 SignalR,我想知道在以下情况下设置集线器的最佳方式是什么:假设我有一个网络赌场应用程序(只是为了好玩),它有三个游戏,扑克、二十一点和老虎机。扑克和二十一点都是多人游戏,因此它们具有聊天功能,而老虎机则没有。好的,为了支持这一点,我正在考虑以下列方式设置我的集线器。

BaseHub(处理扑克、二十一点和老虎机常见的连接内容)

PokerHub : BaseHub(处理扑克游戏)

BlackjackHub : BaseHub(处理二十一点游戏)

SlotsHub : BaseHub(处理老虎机游戏)

ChatHub(处理聊天功能)

我正在考虑让这个网络应用程序的扑克页面连接到 PokerHub 以及 ChatHub 和二十一点页面会做类似的事情。 Slots 页面显然只会连接到 SlotsHub。

现在,我不确定的是:扑克/二十一点页面是否应该同时连接到 PokerHub/BlackjackHub 和 ChatHub,或者有什么方法可以让它们只连接到 PokerHub/BlackjackHub 并将聊天功能委托(delegate)给 Chat中心?在那种情况下,我可能会创建一个接口(interface) IHasChat 或类似的东西。在任何一种情况下,ChatHub 是否也应该扩展 BaseHub?目前 BaseHub 只实现了 IConnected、IDisconnect 并且还处理了基本的 Group 功能(JoinGroup、LeaveGroup)。另外,BaseHub 是否应该是共享实例(单例)?

最后,如果您认为我的做法完全错误,请告诉我。这是我的第一个 SignalR 项目,我知道我不是这方面的专家。另外,我知道这里实际上有几个问题。如果您能回答其中任何一个或所有问题,无论哪种方式,我都非常感激。

谢谢你,
汤姆

最佳答案

您可以拥有任意数量的集线器,因为只有一个与 SignalR 服务器的连接。集线器是一种 RPC 实现,并且都共享相同的连接。
The Wiki page on hubs for the js client显示如下连接:

$.connection.hub.start()

其中 hub 是 js 客户端内部的命名空间。

关于signalr - SignalR 中的多个集线器(设计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com