SignalR: как повторно получить информацию о клиенте после перезапуска пула приложений

StackOverflow https://stackoverflow.com/questions/9331389

  •  27-10-2019
  •  | 
  •  

Вопрос

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

Клиентские соединения сохраняются после перезапуска пула приложений, но я ничего не вижу ни в методах OnConnectAsync (), ни в OnReceivedAsync ().

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

Спасибо.

Это было полезно?

Решение

Убедитесь, что вы используете SignalR 0.4.Вы можете обрабатывать OnReconnectedAsync.

https://github.com/SignalR/SignalR/wiki/PersistentConnection

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: если вы сохраните состояние вашего приложения в статических переменных, оно никогда не сможет масштабироваться на ферме (но, возможно, вам все равно).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top