是否可以从 Postman 调用 SignalR Hub

Fab*_*uez 19 signalr signalr-hub signalr.client postman asp.net-core-webapi

我有一个带有 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 中看到有人在使用这个 body 的帖子:

{
    "Target": "SendMessageToGroup",
    "Arguments": [
        "groupA",
        "hello from server"
    ]
}
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

谢谢

Rom*_*biy 18

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

首先-需要通过post请求获取连接id

发布请求以获取连接 ID

然后 - 连接您收到的 ID

与收到的 id 连接

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

第一条消息

那么 - 我们可以使用这个请求格式

来自邮递员的新消息

浏览器中出现新消息

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

与js客户端的网络

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

当未添加特定符号时

  • [] 字符是什么? (3认同)

Nic*_*lae 17

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


Moh*_*Mrg 6

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