【发布时间】:2019-10-21 22:18:04
【问题描述】:
我需要在 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。 也许您知道如何编写客户端连接的其他方式?
【问题讨论】:
-
为什么需要设置连接ID?为什么不能只使用系统分配的东西?
-
我想在 identityFramework 中连接.id == ApplicationUser.Id
-
你为什么要这样做?如果同一用户同时从多个选项卡/窗口/浏览器登录怎么办?维持这将是一场噩梦。相反,将连接与服务器端的特定用户相关联。
-
如果同一个用户从多个标签/窗口/浏览器登录怎么办? id 到处都是一样的。它只是另一个价值而已.... oO
-
连接 ID 应该是一个唯一值,用于单独标识单个连接。如果您开始有多个具有相同 ID 的连接,事情就会中断。您需要以不同的方式将连接与特定用户相关联。
标签: javascript asp.net-core signalr