javascript - SignalR Javascript 客户端 - 调用方法工作但 promise 不起作用(???)

标签 javascript asp.net signalr asp.net-core-signalr

目前我正在研究 ASP.NET Core Web 项目的 SignalR,我使用 ASP.NET Core 作为 SignalR 的服务器,Web 客户端使用 SignalR Javascript Client。 我正在制作一个聊天应用程序,当客户端从服务器调用函数时,它将返回一些消息。 这是我的 Javascript 客户端函数:

      this.hub.invoke(method, data)
      .then((res)=>{ alert(res);})
      .catch(err=> alert(err));
服务器方法:

    public async Task<IActionResult> joinRoom(string roomId)
    {
        Console.WriteLine(roomId);
        return new OkObjectResult("Ok");
    }

问题:

  • 调用成功,服务器端控制台写入roomId

  • 但是,客户端的Promise.then/Promise.catch 不起作用

当我关闭服务器时,客户端出现多个错误,提示由于连接已关闭,调用已被取消。

我的 SignalR 版本是 1.0.3

确实,我也查不出是什么原因。我希望你能帮助我,拜托...我也尝试过在服务器端返回一个字符串,但它也不起作用。

最佳答案

您不能将 IActionResults 与 SignalR 一起使用,它不是 http 请求,而是 RPC 样式调用。只需返回您想要返回的对象,或者如果您不需要向客户端返回任何内容,则将返回类型设置为Task。

public async Task<string> joinRoom(string roomId)
{
    Console.WriteLine(roomId);
    return "Ok";
}

关于javascript - SignalR Javascript 客户端 - 调用方法工作但 promise 不起作用(???),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757271/

相关文章:

javascript - D3.js V4 力向图缩放

javascript - 如何从 webfont 服务动态生成 webfont?

javascript - 将日期线数字转换为 QML 中的时间字符串

javascript - 第二个 zurb Reveal Modal 窗口 - 可能吗?

asp.net - 在 VB.Net Gridview 中添加总计

asp.net - 有选择地将css应用于gridview中的一行

asp.net - Visual Studio 2013 WebTest 请求失败 : An existing connection was forcibly closed by the remote host

c# - SignalR 客户端断开连接并不总是触发

javascript - JQuery 阻塞异步初始化

java - SignalR java : client-test-integration-android : InvalidHttpStatusCodeException