是否可以从 Postman 调用 SignalR Hub

Posted

技术标签:

【中文标题】是否可以从 Postman 调用 SignalR Hub【英文标题】:Is it possible to call a SignalR Hub from Postman 【发布时间】:2019-10-21 18:49:36 【问题描述】:

我有一个带有 SignalR 集线器的 ASP .Net Core 2.2 Web API。是否可以使用 Postman 调用其中一种方法(例如,SendMessageToAll)?问题是我只有 API - 没有前端 - 我需要测试。

我尝试将 URl 放到我在 Postman 中的集线器 (api.mydomain.com/chatHub),但我不确定如何构建正文。我知道 SignalR 最好使用 WebSockets,但我不知道 PostMan 是否具有 WebSocket 功能。我相信如果 WebSockets 不可用,SignalR 也可以做 HTTP 请求,这是 Postman 可以做的。但我用什么身体?我应该使用 HTTP GET 还是 POST?

我在 Postman 中看到了一个人在使用这个身体的帖子:


    "Target": "SendMessageToGroup",
    "Arguments": [
        "groupA",
        "hello from server"
    ]

所以我尝试了同样的方法,但是当我在邮递员上单击“发送”时,我的集线器的 SendMessageToGroup 方法没有被触发。

谢谢

【问题讨论】:

是的,可以使用 Postman 调用其方法之一(例如,SendMessageToAll) 哈哈,谢谢Div。我错误地表达了我的问题,对此感到抱歉。我的意思是问我该怎么做:) 我现在要编辑我的问题... @FabricioRodriguez 任何可行的解决方案? @dergroncki 不幸的是没有。我最终使用了一小段 Angular 代码进行测试。它基本上只是连接到我的 SignalR 集线器并调用集线器上的发送方法之一。它还显示它收到的任何消息。我真的不知道 Angular,但我的同事知道,所以他为我做了 :) 【参考方案1】:

现在可以使用 Postman 版本 > 8.0 使用 WebSocket 请求块。 您可以在他们的博文https://blog.postman.com/postman-supports-websocket-apis/中获取信息

【讨论】:

感谢您的回答。如果您能提供一些示例代码,那就太好了。 感谢 Nicolae,这是个好消息! 我用他们博客文章的链接编辑了我的答案,以免多余 澄清:这篇博文说它支持 8.5 及更高版本:blog.postman.com/postman-supports-websocket-apis【参考方案2】:

检查邮递员 > 8. 如果您只是将集线器注入控制器中,那么您可以使用集线器的方法并从邮递员内部的 http 请求调用它的公共方法。 或使用其他应用程序: https://***.com/a/59543405/4751073

【讨论】:

这不再是正确答案,见上文,该工具现在支持 Web 套接字。大约 2021 年

以上是关于是否可以从 Postman 调用 SignalR Hub的主要内容,如果未能解决你的问题,请参考以下文章

从服务器发布的 SignalR 无法正常工作

从 SignalR 事件调用 Plotly.restyle 时,Plotly 会引发 TypeError

是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作?

从不同的 AppDomain 调用 SignalR 方法

SignalR IOS 客户端,Web 套接字传输无法从服务器调用方法

从 SignalR 调用特定客户端