Обработчик события клиента Signal R не вызывается, несмотря на получение сообщения от сервера

#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. не создавайте несколько подключений для разных страниц, используйте один и тот же объект во всем приложении.