网络

Networking Event

网络事件将由任何传入网络流量触发,并链接到网络函数。此事件将生成一个专用于此事件的DS map,该映射存储在特殊变量async_load中。此DS map将包含不同的信息,具体取决于生成它的网络事件的类型。

常见网络事件

async_load映射中始终存在以下密钥,这些密钥是所有接收到的网络函数通用的:

"type"键的可能返回值可以是下面列出的四个常量之一:

常量描述
network_type_connectThe event was triggered by a connection.
network_type_disconnectThe event was triggered by a disconnection.
network_type_dataThe event was triggered by incoming data.
network_type_non_blocking_connectThe event was triggered by a connection configured as non-blocking (you can use the function network_set_config() for this, or connect using network_connect_async() or network_connect_async_raw()).

连接/断开

当您有一个类型为 network_type_connectnetwork_type_disconnect 的事件时,Network_load 映射将具有以下附加键:

如果事件的类型为network_type_non_blocking_connect,则还会有以下密钥:

值得注意的是,当服务器断开连接时,不会在客户端中触发网络事件,并且当客户端连接到的服务器断开连接时,也不会在客户端中触发network_type_*事件,即使连接是基于Tcp的。

接收数据

network_type_data类型的事件表示您的网络已收到数据时,创建的映射将具有以下键:

注意 创建的缓冲区仅在这些事件中有效,并将在事件结束时自动释放。

正在尝试连接

如果在使用 network_connect_activenetwork_connect_passiveos_is_network_connected 函数返回 false,则在此事件中异步返回结果。 async_load 映射中的 type 键将为以下值之一:

常量描述
network_type_upThe connection succeeded.
network_type_up_failedThe connection failed.

如果网络在任何时候出现故障,将 type 键设置为 network_type_down 时将再次触发此事件。