Есть ли способ получить количество подключений в группе хаба Signalr?

Вот моя проблема, я хочу отслеживать, находится ли пользователь в сети или в автономном режиме, и уведомлять об этом других клиентов. используя концентраторы и реализовав интерфейсы IConnected и IDisconnect.

Моя идея заключалась в том, чтобы отправлять уведомления всем клиентам, когда концентратор обнаруживает подключение или отключение. По умолчанию, когда пользователь обновляет страницу, он получает новый идентификатор соединения, и в конечном итоге предыдущее соединение вызовет отключение, уведомляющее других клиентов, что пользователь находится в автономном режиме, даже если он на самом деле находится в сети.

Я попытался использовать свой собственный ConnectionIdFactory, возвращающий имя пользователя для идентификатора соединения, но при открытии нескольких вкладок в какой-то момент он обнаружит, что идентификатор соединения пользователя отключен, и после этого концентратор на стороне клиента попытается безуспешно подключиться к концентратору в бесконечном цикле, тратя память и процессор. делает браузер практически непригодным для использования. Мне нужно было быстро исправить это, поэтому я удалил свою фабрику, и теперь я добавляю каждое новое соединение в группу, используя имя пользователя, поэтому я могу легко уведомлять одного пользователя обо всех соединениях, но тогда у меня возникает проблема с определением, находится ли пользователь в сети или в автономном режиме, поскольку я не знаю, сколько у пользователя активных подключений.

Итак, мне интересно, есть ли способ получить количество подключений в одной группе? Или, если у кого-нибудь есть лучшая идея, как отслеживать, когда пользователь выходит из сети?

Я использую Signalr 0.4

7
задан harriyott 28 September 2012 в 14:53
поделиться