如何在SignalR客户端中设置连接ID?

问题描述 投票:0回答:1

我需要在 hubConnection.start(); 之前设置连接 id 我看这里 https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client 以及我发现的内容: connection.id - 获取或设置当前连接的客户端 ID。 试过这个。不工作。这是客户端代码:

let hubUrl = 'http://localhost:5000/chat';
let hubConnection = new signalR.HubConnectionBuilder()
        .withUrl(hubUrl)
    .configureLogging(signalR.LogLevel.Information)
    .build();
hubConnection.id = "12345";
hubConnection.on("Send", function (data) {
    let elem = document.createElement("p");
    elem.appendChild(document.createTextNode(data));
    let firstElem = document.getElementById("chatroom").firstChild;
    document.getElementById("chatroom").insertBefore(elem, firstElem);

});

document.getElementById("sendBtn").addEventListener("click", function (e) {
    let message = document.getElementById("message").value;
    hubConnection.invoke("Send", message);
});

hubConnection.start();

hubConnection.id = "12345";这不会改变真实的连接 ID。 也许您知道如何编写客户端连接的其他方式?

javascript asp.net-core signalr
1个回答
1
投票

connectionId 根本无法手动创建或操作,它是在与服务器协商请求期间创建的。
您可以阅读here,您可以实现自己的

IConnectionIdFactory
,但不建议这样做。
您最多可以做的是获取
connectionId
并使用它来映射用户和组以及集线器内的其他逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.