仅为.net核心控制台应用程序创建WebSocket服务器,而不使用Asp.net核心包

oprakyz7  于 11个月前  发布在  .NET
关注(0)|答案(2)|浏览(158)

我们需要将我们的应用程序迁移到.Net核心,并且我们依赖于.Net Framework 3.5 . websocket-sharp的WebSocket库构建
到目前为止,我还没有找到一个只使用.Net Core而不是ASP Net Core的WebSocket的libray实现。
使用ASP的库的例子是:

但是我们不应该仅仅使用ASP包来集成WebSocket实现。谁能帮助我找到一个只使用.Net核心层而不使用ASP.Net核心的WebSocket实现?

nwnhqdif

nwnhqdif1#

这是一个Web Socket服务器,它不依赖于Kestrel或ASP,使其完全兼容.NET Core和Mono。
https://github.com/jchristn/WatsonWebsocket
它应该是非常面向未来的,因为它的依赖性最小。请注意,作者是一名前思科工程师,拥有其他几个易于使用的.net客户端/服务器库。我使用他的其他库非常轻松和成功。他的努力值得支持和尊重。
关于他的库的一个很大的优点是,他们是相当小的。他们使启动和运行尽可能容易,只提供最基本的必需品,你会想要的服务器和客户端。像客户端管理,请求路由等将取决于你来实现。我发现这是非常有利的。
更新11/7/2020:Joel表示,他打算重写WatsonWebSocket的底层部分,使其不依赖于HttpRequest或http.sys。它将依赖于他的备用自定义http侦听器。这是一个好消息,因为HttpRequest已被弃用,未来前景不明朗。
更新11/11/2023:Joel没有删除依赖于HTTP的部分,因为.NET 5和forward继续完全支持HTTP。沃森WebSockets也仍然依赖于http.sys,它似乎在Linux上工作得很好。我听到的唯一问题报告是TLS/SSL在Linux上不能正常工作,但是人们通过在.NET应用程序前面运行Nginx服务器来解决这个问题。我相信你在Linux上使用ASP.NET会遇到完全相同的问题,所以没有什么不同。

rwqw0loc

rwqw0loc2#

抽象的ClientWebSocketClass是一个不依赖于ASP.NET核心的Websocket实现。所以你可以使用它与任何Websocket实现进行客户端通信。
服务器端部分将需要一个HTTP服务器,因为WebSocket连接是通过创建一个普通的HTTP请求来实现的,并且连接升级到WebSocket。所以你需要一个Web服务器来接收初始请求。

相关问题