这是我的聊天javascript
"use strict";
var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();
connection.on("ReceiveMessage", function (message) {
var msg = message.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
var encodedMsg = msg;
var li = document.createElement("li");
li.textContent = encodedMsg;
document.getElementById("Messages").appendChild(li);
});
connection.start().catch(function (err) {
return console.error(err.toString());
});
document.getElementById("Send").addEventListener("click", function (event) {
var message = document.getElementById("Message").value;
connection.invoke("SendMessage", message).catch(function (err) {
return console.error(err.toString());
});
event.preventDefault();
});
这是我在使用聊天输入运行页面时遇到的错误:
Uncaught ReferenceError: signalR is not defined at chat.js:3
chat.js
中的第 3 行是:
var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();
我从 Visual Studio 添加客户端库下载了 SignalR
客户端库。我现在拥有的是一个名为 jquery.signalR.js
的文件,它是 ASP.NET SignalR Javascript Library 2.4.0。
但是,这个错误并没有消失,我由于某种原因无法继续。
最佳答案
我看到您的应用程序是 ASP.NET Core,但您使用的是 jquery.signalR.js
,它实际上是用于 ASP.NET MVC . ASP.NET Core 的 SignalR
客户端是 signalr.js
,它独立于 jQuery
。您可以从 NPM 下载适用于 ASP.NET Core
的 signalr.js
:
您还可以使用 Visual Studio 客户端 Library Manager (LibMan) 下载,如下所示:
在 Solution Explorer 中,右键单击项目,然后选择 Add > 客户端库。
在添加客户端库对话框中,为 Provider 选择
unpkg
。对于库,输入
@microsoft/signalr@latest
,然后选择最新版本
那不是预览。如果路径中包含
@
,则必须将 Target Location 更改为wwwroot/lib/signalr
。否则不会下载。
关于javascript - ASP.NET Core 2.1 SignalR 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54340462/