Какой самый лучший транспортный тип SignalR для ненадежных сетей?

Я использую сигнализатор для соединения между моей игрой на андроиде с Unity и сервером, но из-за ненадежности соединения с сетевым сокетом мобильной передачи данных (3G) теряется и периодически переподключается. Какой вид транспорта лучше всего подходит в этой ситуации? Сервер отправляет события лучше, чем WebSocket для ненадежных сетей? Описание: клиент отправляет запросы почти каждые 15 секунд.

1 ответ

Решение

Транспорт не проблема. Если 3G отключается, не имеет значения, какой транспорт вы используете. Я предлагаю вам позволить SignalR забрать транспорт. Вам просто нужно реализовать логику переподключения. SignalR будет пытаться восстановить соединение в течение нескольких секунд, по истечении некоторого времени (не помню, сколько секунд) оно никогда не подключится. Нетрудно реализовать логику, так как вы можете прослушивать события подключения (подключен, отключен, переподключен...).

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

Посмотрите, как в этом примере обрабатываются подключения, отключения и кэширование неудачных вызовов методов.

Другие вопросы по тегам