微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

也使用 ClientWebSocket 的 SignalR Hub 架构

如何解决也使用 ClientWebSocket 的 SignalR Hub 架构

我们希望 SignalR Hub (Microsoft.AspNetCore.SignalR.Hub) 成为某种中间人;除了向/从客户端推送和接收消息之外,它还应该使用来自单独的网络套接字服务器的消息使用 ClientWebSocket。它处理这些消息,然后通过 SignalR 将派生的消息发送给客户端。

一个问题是ClientWebSocket被注入然后在构造函数中配置,但是构造函数调用了多次,在ClientWebSocket已经打开的情况下尝试配置会抛出错误

一个问题是,当调用 ClientWebSocket.ConnectAsync 时,SignalR 不再接收消息。

有没有办法让这些在 Hub 中工作?或者我们是否必须以不同的方式设计它才能不在同一个类中使用 SignalR 和 ClientWebSocket?

解决方法

SignalR 是一种基于任何传输的协议。这意味着您可以使用 ClientWebSocket 进行连接,但您需要手动编写和解析协议消息。该协议记录在 https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。