-
Notifications
You must be signed in to change notification settings - Fork 395
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 中。