首页 > 解决方案 > 带有 gRPC + Websockets 的 ASP.NET 服务器

问题描述

我正在尝试实现一个 ASP.NET 服务器,它应该响应 gRPC 调用并维护与其客户端的 websocket 连接。我想使用独立的 Kestrel 变体。

我一直在苦苦挣扎,现在我知道我的情况似乎出了什么问题:gRPC 需要 HTTP/2,而 Websockets(至少我尝试过的客户端)似乎需要 HTTP/1.1。

通过设置相关的 Kestrel 应用程序设置(“协议”:“Http2”或“协议”:“Http1”),我可以使任一部分工作。还有一个 Http1AndHttp2 变体,但没有区别。

我在这里有误解吗?这有可能吗?或者 Websockets 能否以某种方式与 HTTP/2 兼容?

顺便说一句,我知道我可以使用 gRPC 流来实现类似的事情,事实上我已经在运行了。但我的印象是 websockets 仍然是更成熟的技术,所以这将是我的首选解决方案。

非常感谢:-)

更新:我自己想通了。我可以简单地告诉 Kestrel 为每个协议提供不同的端点。忽略了最明显和最简单的解决方案:-/

标签: c#asp.netwebsocketgrpckestrel

解决方案


推荐阅读