Используя SignalR, мне интересно, как лучше всего настроить мои концентраторы в следующем сценарии: Скажем, у меня есть приложение для веб-казино (просто для удовольствия), и у него есть три игры: покер, блэкджек и слоты. Покер и блэкджек - это мультиплеер, поэтому у них есть функция чата, а в слотах нет. Хорошо, чтобы поддержать это, я думал о настройке своих концентраторов следующим образом.
BaseHub (обрабатывает соединения, общие для Покера, Блэкджека и Слотов)
PokerHub: BaseHub (Играет в покерную игру)
BlackjackHub: BaseHub (играет в блэкджек)
SlotsHub: BaseHub (Играет в игровые автоматы)
ChatHub (обрабатывает функции чата)
Я думал, что страница Poker этого веб-приложения подключится к PokerHub, а также страница ChatHub и Blackjack сделает что-то подобное. Страница слотов, очевидно, будет подключаться только к SlotsHub.
Теперь вещи, о которых я не уверен, являются: если страницы Poker/Blackjack будут подключаться как к PokerHub/BlackjackHub, так и к ChatHub или есть какой-то способ, я могу подключить их только к PokerHub/BlackjackHub и делегировать функции чата в центр чата? В этом случае я мог бы создать как интерфейс IHasChat или что-то в этом роде. В любом случае, если ChatHub также расширяет BaseHub? В настоящее время BaseHub только реализует IConnected, IDisconnect, а также обрабатывает основные функции группы (JoinGroup, LeaveGroup). Кроме того, должен ли BaseHub быть общим экземпляром (singleton)?
Наконец, если вы думаете, что я просто ошибаюсь, сообщите мне. Это мой первый проект SignalR, и я знаю, что я не эксперт в этом. Кроме того, я знаю, что здесь есть несколько вопросов. Если вы можете ответить на все или все из них, в любом случае я действительно ценю это.
Спасибо, Том