【问题标题】:SignalR error Error: Failed to invoke 'Methodname' due to an error on the serverSignalR 错误错误:由于服务器上的错误,无法调用“方法名”
【发布时间】:2020-04-23 04:44:40
【问题描述】:

我收到此错误错误:由于服务器上的错误,无法调用“MoveLobbyCard”。尝试在大厅执行操作时 我的js代码:

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/hub").build();

connection.start().then(function () {
}).catch(function (err) {
    return console.error(err.toString());
});

connection.on("UserConnected", function (ConnectionId) {
    $("#userlist").append($("<li>").text(ConnectionId + "has joined"));
    var lobbyID = $('#lobbyID').text();
    connection.invoke("JoinLobby", lobbyID).catch(function (err) {
        return console.error(err.toString());
    });
});

connection.on("CardMoved", function (id) {
    $('#'+id).addClass("moved");
});


$('.card').on("click", function (){
    var id = $(this).attr("id");
    connection.invoke("MoveLobbyCard",id,lobbyID).catch(function (err) {
        return console.error(err.toString());
    });
});

确实会添加到组中,但我不知道是什么导致了错误

【问题讨论】:

  • 检查您的 ASP.Net Core 控制台是否有异常并在此处发布。

标签: c# asp.net-core signalr


【解决方案1】:

错误是由于 var id 不是全局变量而导致的,因此它占用了整个跨度而不是 id。

【讨论】:

    【解决方案2】:

    对我来说,错误是由集线器上的方法签名引起的,该方法签名需要一个整数,但 javascript 将它(一个数字)作为字符串提供。我将集线器更改为接受字符串并在使用前将其解析为整数,一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多