【问题标题】:calling any function on OnDisconnectedAsync Task in signalr Hub在 Signalr Hub 中调用 OnDisconnectedAsync 任务上的任何函数
【发布时间】:2021-09-08 05:10:18
【问题描述】:

英语不是我的母语
我对 signalrHub 的客户端实现有疑问。
当我从 connection.start() 调用 removeConnectionID...
ajax 调用执行并带我进行测试操作
但是当我从 connection.on("diss", ...
调用 removeConnectionID (OnDisconnectedAsync)
什么都没有发生,我没有收到任何错误
这是我的 ChatHub 中心

 public string GetConnectionId()
    {
        return Context.ConnectionId;
    }

    public override Task OnConnectedAsync()
    {


        // Groups.AddToGroupAsync(Context.ConnectionId, name);
       
        return base.OnConnectedAsync();
    }

    public override async Task OnDisconnectedAsync(Exception exception)
    {
        
       await  Clients.Client(GetConnectionId()).SendAsync("diss", Context.ConnectionId);
      await base.OnDisconnectedAsync(exception);
    }

} 这是我的js代码

var connection = new signalR.HubConnectionBuilder()
.withUrl("/chatt", {
    accessTokenFactory: () => "testing"
})
.build();


connection.start().then(function () {
connection.invoke('GetConnectionId')
.then(function (connectionId) {
   //alert(connectionId);
   removeConnectionID(connectionId);
})

}).catch(err => console.error(err));

 connection.on("diss", function(connectionId) {

     removeConnectionID(connectionId);
    //console.log(connectionId);
});

async function removeConnectionID(id) {
    await  $.get("/Chat/Test") ;
    }

我尝试从 connection.on("diss", ...
向所有客户端发送 console.log (OnDisconnectedAsync),它运行良好
并尝试从 connection.start() 调用相同的函数并且函数有效。
我认为问题是集线器在操作完成之前关闭连接但不知道如何解决它!

任何帮助表示赞赏!

【问题讨论】:

    标签: .net ajax .net-core signalr signalr.client


    【解决方案1】:

    没有异步 OnDisconnectedAsync。移除异步代码标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多