【问题标题】:How can I close the client-side JavaScript 'Hub' connection in SignalR?如何关闭 SignalR 中的客户端 JavaScript“集线器”连接?
【发布时间】:2018-11-06 15:49:53
【问题描述】:

我已关注this tutorial

但是没有提示如何通过signalr.js-file 中的HubConnection 类关闭Websocket 连接。文件为V1.0.4。

This solution 无法解决我的问题,因为我使用的是微软的 javascript 库。

代码如下:

var lHubConnection = null;

var Init = function () {

    // create instance
    lHubConnection = new signalR.lHubConnectionBuilder().withUrl("/chatHub").build();

    // receive message
    lHubConnection.on("ReceiveMessage", function (pMessage) {

        // show message
        console.log(JSON.parse(pMessage));
    });

    // [...]
};

// close websocket connection
var CloseConnection = function(){

    if (lHubConnection !== null && lHubConnection.connection.connectionState === 1) {   
        // lHubConnection.invoke("?"); ???
    }
};

这是 lHubConnection 实例的控制台输出:

【问题讨论】:

  • 你试过HubConnection.StopAsync吗?根据 MS 文档,这就是关闭集线器连接的方式。
  • 没有 *.StopAsync() 方法。你能把你看到的MS文档的链接贴出来吗?
  • 啊,那个方法在 JavaScript 版本中可能不可用,我不是 100% 确定。 Here is the link
  • @Vincent P:那是服务器端的 c# 代码。我正在寻找客户端 js 代码。

标签: javascript asp.net websocket signalr asp.net-core-2.1


【解决方案1】:

根据微软的说法,JavaScript 客户端包含一个停止功能。

https://docs.microsoft.com/en-us/javascript/api/%40aspnet/signalr/hubconnection?view=signalr-js-latest#stop

另外,你可以在框架的原型中找到.stop()-Method:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多