是否可以从 Postman 调用 SignalR Hub

Is it possible to call a SignalR Hub from Postman

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

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

我在 Postman 中看到 post 这个人正在使用这个 body:

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

所以我尝试了同样的方法,但是当我在 postman 上单击 "Send" 时,我的集线器的 SendMessageToGroup 方法没有被触发。

谢谢

检查 Postman > 8。 如果您只是将集线器注入到控制器中,那么您可以使用集线器的方法并从 post man 中的 http 请求调用它的 public 方法。 或使用其他应用程序:

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

使用 asp.net core 5 为我工作(未测试任何其他版本)

首先 - 需要通过 post 请求

获取连接 ID

post request to get connection id

然后 - 使用您收到的 ID 连接

connection with received id

连接后 - 您的第一条消息必须是 {"protocol":"json","version":1}

first message

然后 - 我们可以使用这种请求格式

new message from postman

new message in browser

需要将此特定符号添加到您的每个 websockets 请求中

network with js client

未添加特定符号时 - 请求未通过

when specific symbol is not added