我需要在 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。 也许您知道如何编写客户端连接的其他方式?
connectionId 根本无法手动创建或操作,它是在与服务器协商请求期间创建的。
您可以阅读here,您可以实现自己的
IConnectionIdFactory
,但不建议这样做。connectionId
并使用它来映射用户和组以及集线器内的其他逻辑。