【问题标题】:.net core signalr to mvc signalr.net 核心信号器到 mvc 信号器
【发布时间】: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


【解决方案1】:

我的主要问题在于我的构造方法。我无法触发服务器端方法。我的旧项目想要初始化变量并且没有 try catch 块。所以我删除了构造方法。然后就成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多