Несколько концентраторов в SignalR (дизайн)

Используя SignalR, мне интересно, как лучше всего настроить мои концентраторы в следующем сценарии: допустим, у меня есть приложение для веб-казино (просто для развлечения), и в нем есть три игры: покер, блэкджек и Слоты. Покер и блэкджек являются многопользовательскими, поэтому в них есть функция чата, а в игровых автоматах - нет. Хорошо, чтобы поддержать это, я подумал о настройке своих концентраторов следующим образом.

BaseHub (обрабатывает элементы подключения, общие для покера, блэкджека и игровых автоматов)

PokerHub : BaseHub (обрабатывает игру в покер)

BlackjackHub : BaseHub (обрабатывает игру в блэкджек)

SlotsHub : BaseHub ( Обрабатывает игровые автоматы)

ChatHub (Обрабатывает функции чата)

Я думал о том, чтобы страница покера этого веб-приложения подключалась к PokerHub, а ChatHub и страница блэкджека делали бы что-то подобное. Страница «Слоты», очевидно, будет подключаться только к SlotsHub.

Теперь, вот в чем я не уверен: Должны ли страницы покера/блэкджека подключаться как к PokerHub/BlackjackHub, так и к ChatHub, или я мог бы каким-то образом подключить их только к PokerHub/BlackjackHub и делегировать функции чата? в чат-центр? В этом случае я мог бы создать интерфейс IHasChat или что-то в этом роде.В любом случае, ChatHub также должен расширять BaseHub? В настоящее время BaseHub реализует только IConnected, IDisconnect, а также обрабатывает базовые групповые функции (JoinGroup, LeaveGroup). Кроме того, должен ли BaseHub быть общим экземпляром (одиночным)?

Наконец, если вы думаете, что я делаю это совершенно неправильно, пожалуйста, дайте мне знать. Это мой первый проект SignalR, и я знаю, что не являюсь в нем экспертом. Кроме того, я знаю, что на самом деле здесь есть несколько вопросов. Если вы можете ответить на любой из них или на все из них, в любом случае, я очень ценю это.

Спасибо, Tom

15
задан tleef 29 May 2012 в 05:17
поделиться