#javascript #reactjs #.net-core #websocket #signalr
#javascript #reactjs #.net-core #websocket #signalr
Вопрос:
Я уже перепробовал все возможные способы устранения неполадок для этого. Проблема возникает с одним обработчиком событий. сообщение получено со стороны сервера. Это я подтвердил на вкладке сеть, но обработчик событий не вызывается, и ошибка не выдается.
objConnection.on("FileTransferAccepted", (res) => {
setTransferStatus(true);
});
Это получено в браузере
Я также подтвердил, что обработчик событий подключен
Я застрял. не могу понять, что не так только с этим обработчиком. попытался переименовать обработчик, но изменений все равно нет.
Комментарии:
1. Если вы знаете тип полученного объекта из SignalR, я бы рекомендовал привести его к этому объекту и посмотреть, вызовет ли он обработчик.
2. уже пробовал. никаких изменений. ничего не сработало
Ответ №1:
Итак, я наконец нашел проблему.
Я создал объект connection на одной странице и забыл очистить и остановить соединение перед переходом на другую страницу. Здесь я создал другой объект соединения и обновил идентификатор соединения в БД, чтобы сделать его доступным. Но даже после размонтирования компонента. предыдущее соединение не было уничтожено. И сообщение было получено, но у этого объекта не было обработчика событий для обработки этого события. Все, что я сделал, это закрыл предыдущее соединение при размонтировании, и все начало работать нормально.
Краткие сведения:
Решение 1: в случае, если вы создали несколько подключений на разных страницах или компонентах. уничтожьте эти соединения, вызвав метод «stop ()» при размонтировании. Также не забудьте обновить свой новый идентификатор подключения в БД.
Решение 2. не создавайте несколько подключений для разных страниц, используйте один и тот же объект во всем приложении.