(如何)我可以使用 ASP.NET Core 进行自定义 TCP 数据包通信吗?

(How) Can I use ASP.NET Core for custom TCP packet communication?

我有一个带有典型 TCP 数据包协议(长度/类型/数据[长度])的过时游戏服务器,我的任务是找到现代框架来重写它。

在 ASP.NET Core 2.1 中编写了一个(小的)RESTish API,我知道它提供了 DI / 日志记录 / 配置功能,可以完美地替代旧服务器中的类似功能。我想我可以使用 ASP.NET 核心,让它处理所述 TCP 数据包而不是 HTTP 请求。

现在我有点不知道从哪里开始,以及它是否/如何适合 ASP.NET 核心。 到目前为止,我已经了解了 RTFM 的内部 ASP.NET 核心工作原理,并发现了一些让我感到困惑的事情:

总而言之,我的研究得出以下两个问题:

回到这里后,我意识到 Project Bedrock is aiming to further generalize Kestrel to support completely custom protocols, not even limited to raw TCP. An overview / description can be found here

上面的 link 显示了 GitHub 存储库中项目的当前 public 状态,并提供了很好的实际示例。它 seems to be planned to be integrated with whatever follows the ASP.NET Core roadmap for .NET 6,但与 .NET Core 3.1 兼容的预发布版本可用并且在我的实验中效果很好。