Skip to content

Network

云风 edited this page Jan 26, 2024 · 2 revisions

网络连接

高效处理网络连接不是 Ant 引擎的设计重点。最初的 TCP 连接管理的模块只是为了实现 WebServer 而简单实现的。

虽然有很多现成的 Lua 的 socket api 封装库,但我们不推荐在 Ant 引擎中直接使用。因为 ActorModel 的服务中,不建议使用会阻塞住系统线程的 API 。既然 Ant 已经有 VFS 的 IO 服务处理网络连接,所以,我们就可以直接利用了它做一些额外的 TCP 连接管理。

ant.net 这个包对 IO 服务做了稍许扩展,使用 local net = import_package "ant.net" 就能使用。这个包导出了一组基本的网络连接 api :

  • listen
  • connect
  • accept
  • recv
  • send
  • close

以上 6 个 api 和 socket api 中对应行为基本一致。但更适合在 ltask 服务中使用。它们都不会阻塞住系统线程,而只会阻塞在 lua 的 coroutine 中。