【问题标题】:How to invoke a SignalR Core hub method from Postman/WebSocket King如何从 Postman/WebSocket King 调用 SignalR Core 集线器方法
【发布时间】:2021-09-06 16:04:37
【问题描述】:

我有一个 SignalR Core 集线器。我可以使用 Postman 或 WebSocket King 等客户端连接到同一个集线器。但是,我无法调用需要参数的集线器方法。可以从 SignalR JS 客户端轻松调用相同的方法。我检查了浏览器开发工具并提取了从客户端传输到服务器的消息。当我尝试使用相同的消息从 Postman/WebSocket King 调用相同的方法时,它就不起作用了。

集线器方法:

public async Task Subscribe(string[] imeis, string group)
{
   ...     
}

从 SignalR 客户端传输的消息(从浏览器开发工具访问):

{"arguments":[[10001001],"ALL"],"invocationId":"0","streamIds":[],"target":"Subscribe","type":1}

从 Postman/WebSocket King 发送相同的消息不会命中 hub 方法。有什么建议吗?

【问题讨论】:

  • 你应该让属性名称与方法中的名称匹配,尝试发送传输的消息
  • @JerryCai 转发消息是什么意思?请详细说明一下。
  • 如果要发布到方法,你应该传递imeis和组,消息现在无法匹配属性(imeis和组)

标签: asp.net-core postman signalr-hub asp.net-core-signalr


【解决方案1】:

好的,就我而言,我想我已经能够连接到服务器了。所以基本上,这是一个两步的过程:

1.建立连接

向:/negotiate?negotiateVersion=1

发出 HTTP POST 请求

响应应该是这样的:

HTTP/1.1 200 OK
Content-Length: 256
Content-Type: application/json
Server: Microsoft-IIS/10.0
Access-Control-Allow-Origin: null
Access-Control-Allow-Credentials: true
X-Powered-By: ASP.NET
Date: Tue, 17 Oct 2021 09:08:59 GMT

{"negotiateVersion":1,"connectionId":"TP- 
KX7BpPj4y4rxMFwaznw","connectionToken":"OeGB- 
EKkoYvcSg7Z4p4n0w","availableTransports": 
[{"transport":"WebSockets","transferFormats":["Text","Binary"]}, 
{"transport":"LongPolling","transferFormats":["Text","Binary"]}]}

连接令牌值 (OeGB-EKkoYvcSg7Z4p4n0w) 在这里很重要!保存以在第 2 步中使用。

2。调用 SignalR hub 方法:

使用 WebSocket 协议,调用 URL:?id=OeGB-EKkoYvcSg7Z4p4n0w

连接建立成功后,通过websocket将如下数据传入服务器:

{"protocol":"json","version":1}

这将导致从服务器获得空响应。 在此之后,调用服务器集线器方法并按如下方式传递参数:

{"arguments":[["10001001"],"ALL"],"invocationId":"0","streamIds": 
[],"target":"Subscribe","type":1}

这里,“订阅”是我的 SignalR Core Hub 方法名称,它接受两个参数,一个字符串数组 (["10001001"]) 和一个字符串 ("ALL")。

在此之后,从服务器端,推送通知将开始通过相同的 websocket 连接到达客户端。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2018-12-18
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多