首页 > 解决方案 > SignalR 多客户端事件处理

问题描述

一般来说,对于 javascript、signalR 和 c# 来说都是非常新的。

我在客户端有 2 个函数,我想在不同的时间调用它们,但我只能触发 1 个函数。

Javascript部分:

var connection = new signalR.HubConnectionBuilder().withUrl("/signalRHub").build();


    connection.on("DisplayCardEvent", function (message) {
        document.getElementById("EventMessage").innerHTML = message;
    });

    connection.on("DisplayCardInfo", function (idCode, givenName, surName){
        document.getElementById("IdCode").innerHTML = idCode;
        document.getElementById("GivenName").innerHTML = givenName;
        document.getElementById("SurName").innerHTML = surName;
    });

    connection.start().catch(err => console.error(err.toString()));

html代码:

<div id="EventMessage"></div>
<div id="IdCode"></div>
<div id="GivenName"></div>
<div id="SurName"></div>

当我打电话时在服务器端:

_hubcontext.Clients.All.SendAsync("DisplayCardEvent", eventName);  

它通过替换 div 框 EventName 中的内容完美触发,但是当我调用时:

_hubcontext.Clients.All.SendAsync("DisplayCardInfo", idCode, givenName, surName);

客户端的事件永远不会触发。检查浏览器时,它仅将第一个显示为它侦听的事件。

编辑:设法解决问题。问题是我用来运行应用程序的浏览器之前缓存了 javascript 文件。当我添加第二个功能时,它从未在浏览器端更新。解决方法是简单地删除浏览器缓存。

标签: javascriptsignalr

解决方案


推荐阅读