SignalR с ненадежными или приостановленными и переподключенными соединениями? - PullRequest
11 голосов
/ 12 октября 2011

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

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

Ответы [ 2 ]

10 голосов
/ 12 октября 2011

Все это определенно возможно, поскольку клиент отслеживает последний идентификатор сообщения, которое он видел. Если случится пропустить сообщения, они получат их в следующий раз, когда вернутся на сервер (запрашивая все сообщения с момента последнего увиденного).

По умолчанию серверная часть SignalR хранит сообщения в памяти (и очищает их каждые несколько секунд), но вы можете изменить его, чтобы сохранить в каком-то постоянном хранилище (см. IMessageStore ), если вы думаете о том, что клиенты выходят из сети и догоняют.

Вы даже можете сохранять сообщения самостоятельно в логике своего приложения, пока SignalR хранит данные в памяти. Это действительно зависит от приложения.

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

Эти детали не очень конкретны, но то, что вы хотите сделать, возможно с помощью SignalR.

0 голосов
/ 27 февраля 2015

Чтение Понимание и обработка событий времени жизни соединения в SignalR , особенно в следующих разделах:

Этот документ был написан в 2014 году и в основном устарел во многих неправильных или неполных вопросах / ответах, связанных со StackOverflow SignalR, относящихся к эпохе 2011-2012 годов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...