【发布时间】:2021-05-10 14:21:51
【问题描述】:
您好,我正在尝试将项目从 .net 核心迁移到 mvc,但我遇到了一些关于信号器的问题。
这项工作在新的 mvc 项目上。
Reference the auto-generated proxy for the hub.
var chat = $.connection.chatHub;
// Start the connection.
$.connection.hub.start().done(function () {
alert("done");
});
但是这个来自旧(.net 核心)项目的项目不起作用。 错误是:Uncaught ReferenceError: signalR is not defined
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.start().then(function () {
console.log('SignalR Started...');
viewModel.roomList();
viewModel.userList();
setTimeout(function () {
if (viewModel.chatRooms().length > 0) {
viewModel.joinRoom(viewModel.chatRooms()[0]);
}
}, 250);
}).catch(function (err) {
return console.error("!!!!!" + err);
});
browser/signalr.js 第一个定义signalR,但这次错误是:错误:无法完成与服务器的协商:错误
【问题讨论】:
-
错误信息很清楚。您需要在您的
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();行上方定义signalR -
@RaZzLe 首先,我认为 signalR 在 mvc 上的工作方式不同。在 browser/signalr.js 中定义的 signalR 但这次是关于协商的错误消息。
-
这可能是任何东西。也许您忘记从旧的 .net 核心项目的 appsettings.json 文件中迁移某些内容(关于此服务器定义),或者您尝试连接的服务器已关闭。
标签: javascript jquery model-view-controller signalr