尽管从服务器接收到消息,但未调用 Signal R 客户端事件处理程序

Signal R client event handler not invoked despite receiving message from server

我已经尝试了所有可能的故障排除。单个事件处理程序会出现此问题。消息是从服务器端收到的。我在网络选项卡中确认了这一点,但未调用事件处理程序并且未引发任何错误。

objConnection.on("FileTransferAccepted", (res) => {
          setTransferStatus(true);
});

这是在浏览器中收到的

我也已确认附加了事件处理程序

我卡住了。无法弄清楚这个处理程序有什么问题。尝试重命名处理程序仍然没有变化。

所以我终于找到问题了

我在一个页面中创建了一个连接对象,但忘记在导航到另一个页面之前清理并停止连接。在这里,我创建了另一个连接对象并更新了数据库中的连接 ID,以便我可以访问。但即使在组件被卸载之后。之前的连接没有被破坏。消息已收到,但该对象没有事件处理程序来处理此事件。我所做的只是在卸载时关闭之前的连接,一切都开始正常工作。

总结:

解决方案 1:如果您在不同的页面或组件中创建了多个连接。通过在卸载时调用“stop()”方法来破坏这些连接。也不要忘记在数据库中更新您的新连接 ID。

解决方案 2:不要为不同的页面创建多个连接,在整个应用程序中使用相同的对象。