SignalR: как повторно получить информацию о клиенте после перезапуска пула приложений
-
27-10-2019 - |
Вопрос
Во время подключения я сопоставляю идентификатор клиента с другой информацией о клиенте и подписке, которую я встраиваю в статическую переменную.Это работает нормально, пока пул приложений не перезапустится или я не перекомпилирую, а затем потеряю свои сопоставления.
Клиентские соединения сохраняются после перезапуска пула приложений, но я ничего не вижу ни в методах OnConnectAsync (), ни в OnReceivedAsync ().
Я вижу в Firebug, что мои клиенты отправляют новый POST каждые 4 минуты.Есть ли какое-то событие SignalR, которое я могу переопределить, чтобы захватить входящий POST и перестроить мое клиентское сопоставление для текущих постоянных подключений?
Спасибо.
Решение
Убедитесь, что вы используете SignalR 0.4.Вы можете обрабатывать OnReconnectedAsync.
https://github.com/SignalR/SignalR/wiki/PersistentConnection
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: если вы сохраните состояние вашего приложения в статических переменных, оно никогда не сможет масштабироваться на ферме (но, возможно, вам все равно).