2014-11-19 2 views
1

Я хотел бы, чтобы пользователь мог получать сообщения, которые они могли пропустить, когда они повторно подключаются к серверу Signalr.Клиент Signalr для получения пропущенных сообщений при повторном подключении

Я знаю, что могу сохранять сообщения независимо от Signalr, отслеживать последний идентификатор сообщения, полученный в клиенте, и повторно отправлять новые сообщения при повторном подключении, но я смотрел таблицу Messages_0 на задней панели SqlServer, которая имеет полезную нагрузку и PayloadID и было интересно, есть ли еще способ Signalr'y, чтобы получить объединительную плату, чтобы сделать это для меня, или расширить объединительную плату, чтобы сделать это для меня.

Есть ли у вас идеи, как я могу это сделать?

ответ

2

SignalR - это больше система сообщений в реальном времени, используемая для передачи запроса подключенным клиентам. Не существует встроенного способа отслеживания того, что широковещательное сообщение было получено конкретным развязанным клиентом, если вы отправляли многие клиенты. Механизмы служебной шины/очереди более подходят для этого IE - MSMQ, Rhino Service Bus, RabbitMQ и т. Д. Вы можете определенно создать очередь, которая обрабатывает запросы, и следит за тем, какие идентификаторы все еще подключены к концентратору и имеют SignalR обрабатывают широковещательную передачу часть сообщения, и если идентификация отделяется и возвращается в группу, повторно отправляется только на эту личность.

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

Смежные вопросы