p2p - YoYoGames/GMEXT-EpicOnlineServices GitHub Wiki
Epic Online Services Interface: P2P Interface
This module contains functionality to interact with the NAT P2P Interface, which has functionality to send and receive data between users, and related networking functionality.
P2P connections enable game clients to send and receive data between one another directly, typically for the purpose of a multiplayer game. Connections made with the EOS P2P Interface are only established between authenticated users, and are secure-by-default using Datagram Transport Layer (DTLS). DTLS provides two distinct advantages over other communications protocols: *The speed of handling P2P connections is significantly increased, resulting in EOS's authentication having a greatly reduced need for connections to be re-negotiated.
The following are the functions of the P2P module:
- eos_p2p_accept_connection
- eos_p2p_add_notify_incoming_packet_queue_full
- eos_p2p_add_notify_peer_connection_closed
- eos_p2p_add_notify_peer_connection_established
- eos_p2p_add_notify_peer_connection_interrupted
- eos_p2p_add_notify_peer_connection_request
- eos_p2p_clear_packet_queue
- eos_p2p_close_connection
- eos_p2p_close_connections
- eos_p2p_get_nat_type
- eos_p2p_get_next_received_packet_size
- eos_p2p_get_packet_queue_info
- eos_p2p_get_port_range
- eos_p2p_get_relay_control
- eos_p2p_query_nat_type
- eos_p2p_receive_packet
- eos_p2p_remove_notify_incoming_packet_queue_full
- eos_p2p_remove_notify_peer_connection_closed
- eos_p2p_remove_notify_peer_connection_established
- eos_p2p_remove_notify_peer_connection_interrupted
- eos_p2p_remove_notify_peer_connection_request
- eos_p2p_send_packet
- eos_p2p_set_packet_queue_size
- eos_p2p_set_port_range
- eos_p2p_set_relay_control
The following are the structs of the P2P module:
The following are the constants and enums of the P2P module:
- EOS_CONNECTION_CLOSED_REASON
- EOS_CONNECTION_ESTABLISHED_TYPE
- EOS_NAT_TYPE
- EOS_NETWORK_CONNECTION_TYPE
- EOS_PACKET_RELIABILITY
- EOS_RELAY_CONTROL
Epic Online Services Function: EOS_P2P_AcceptConnection
This function accepts or requests a connection with a specific peer on a specific Socket ID. If this connection was not already locally accepted, EOS will securely message the peer, and trigger a PeerConnectionRequest notification notifying them of the connection request. If the PeerConnectionRequest notification is not bound for all socket IDs or for the requested socket ID in particular, the request will be silently ignored. If the remote peer accepts the connection, a notification will be broadcast to the EOS_P2P_AddNotifyPeerConnectionEstablished when the connection is ready to send packets. If multiple Socket IDs are accepted with one peer, they will share one physical socket. Even if a connection is already locally accepted, EOS_RESULT.SUCCESS
will still be returned if the input was valid. EOS_RESULT.INVALID_PARAMETERS
will be returned if the input is invalid.
Syntax:
eos_p2p_accept_connection(local_user_id, remote_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who is accepting any pending or future connections with remote_user_id
|
remote_user_id | String | The Product User ID of the remote user who has either sent a connection request or is expected to in the future |
socket_name | String | The socket ID of the connection to accept on |
Returns:
Epic Online Services Function: EOS_P2P_AddNotifyIncomingPacketQueueFull
This function listens for when the packet queue has become full. This event gives an opportunity to read packets to make room for new incoming packets. If this event fires and no packets are read by calling eos_p2p_receive_packet or the packet queue size is not increased by eos_p2p_set_packet_queue_size, any packets that are received after this event are discarded until there is room again in the queue.
The function returns a valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_add_notify_incoming_packet_queue_full()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_p2p_add_notify_incoming_packet_queue_full"
|
overflow_packet_channel | Real | The channel the incoming packet is for |
overflow_packet_local_user_id | String | The Product User ID of the local user who is receiving the packet that would overflow the queue |
overflow_packet_size_bytes | Real | The size in bytes of the incoming packet (and related metadata) that would overflow the queue |
packet_queue_current_size_bytes | Real | The current size in bytes the incoming packet queue is currently using |
packet_queue_max_size_bytes | Real | The maximum size in bytes the incoming packet queue is allowed to use |
Epic Online Services Function: EOS_P2P_AddNotifyPeerConnectionClosed
This function listens for when a previously accepted connection that was either open or pending is closed. When a connection closes, packets are flushed. This includes reliable packets.
The function returns a valid notification ID if successfully bound, or EOS_INVALID_NOTIFICATIONID otherwise.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_add_notify_peer_connection_closed(local_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who would like notifications |
socket_name | String | The optional socket ID to listen for to be closed. If an empty string "" is passed, this function handler will be called for all closed connections. |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_p2p_add_notify_peer_connection_closed"
|
local_user_id | String | The local user who is being notified of a connection being closed |
reason | EOS_CONNECTION_CLOSED_REASON | The reason the connection was closed (if known) |
remote_user_id | String | The Product User ID of the remote user who this connection was with |
socket_name | String | The socket ID of the connection being closed |
Epic Online Services Function: EOS_P2P_AddNotifyPeerConnectionEstablished
This function listens for when a connection is established. This is fired when we first connect to a peer, when we reconnect to a peer after a connection interruption, and when our underlying network connection type changes (for example, from a direct connection to relay, or vice versa). Network Connection Type changes will always be broadcast with a EOS_CONNECTION_ESTABLISHED_TYPE.RECONNECTION
connection type, even if the connection was not interrupted. If the network status changes from offline to online, you must call this function again.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_add_notify_peer_connection_established(local_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who would like to receive notifications |
socket_name | String | The optional socket ID, used as a filter for established connections. If an empty string "" is passed, this function handler will be called for all sockets. |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_p2p_add_notify_peer_connection_established"
|
local_user_id | String | The Product User ID of the local user who is being notified of a connection being established |
connection_type | EOS_CONNECTION_ESTABLISHED_TYPE | Whether this is a new connection or reconnection |
network_type | EOS_NETWORK_CONNECTION_TYPE | What type of network connection is being used for this connection |
socket_id | String | The socket ID of the connection being established |
remote_user_id | String | The Product User ID of the remote user who this connection was with |
Epic Online Services Function: EOS_P2P_AddNotifyPeerConnectionInterrupted
This function listens for when a previously opened connection is interrupted. The connection will automatically attempt to reestablish, but it may not be successful. If a connection reconnects, it will trigger the P2P PeerConnectionEstablished notification with the EOS_CONNECTION_ESTABLISHED_TYPE.RECONNECTION
connection type. If a connection fails to reconnect, it will trigger the P2P PeerConnectionClosed notification. Packets remain queued during connection interruptions. When a connection closes, packets are flushed. This includes reliable packets.
The function returns the notification ID.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_add_notify_peer_connection_interrupted(local_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who would like notifications |
socket_name | String | An optional socket ID to filter interrupted connections on. If an empty string, this function handler will be called for all interrupted connections. |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_p2p_add_notify_peer_connection_interrupted"
|
local_user_id | String | The local user who is being notified of a connection that was interrupted |
remote_user_id | String | The Product User ID of the remote user who this connection was with |
socket_name | String | The socket ID of the connection that was interrupted |
Epic Online Services Function: EOS_P2P_AddNotifyPeerConnectionRequest
This function listens for incoming connection requests on a particular Socket ID, or optionally all Socket IDs. The Social Async Event will only be called if the connection has not already been accepted. If the network status changes from offline to online, you must call this function again.
The function returns the notification ID.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_add_notify_peer_connection_request(local_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the user who is listening for incoming connection requests |
socket_name | String | The optional socket ID to listen for, used as a filter for incoming connection requests; If an empty string, incoming connection requests will not be filtered |
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | The string "eos_p2p_add_notify_peer_connection_request"
|
local_user_id | String | The Product User ID of the local user who is being requested to open a P2P session with remote_user_id
|
remote_user_id | String | The Product User ID of the remote user who requested a peer connection with the local user |
socket_name | String | The ID of the socket the Remote User wishes to communicate on |
Epic Online Services Function: EOS_P2P_ClearPacketQueue
This function clears queued incoming and outgoing packets.
Syntax:
eos_p2p_clear_packet_queue(local_user_id, remote_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user for whom we want to clear the queued packets |
remote_user_id | String | The Product User ID to who (outgoing) or from who (incoming) packets are queued |
socket_name | String | The socket used for packets to be cleared |
Returns:
Epic Online Services Function: EOS_P2P_CloseConnection
For all (or optionally one specific) Socket ID(s) with a specific peer: stop receiving packets, drop any locally queued packets, and if no other Socket ID is using the connection with the peer, close the underlying connection. If your application wants to migrate an existing connection with a peer it already connected to, it is recommended to call eos_p2p_accept_connection with the new Socket ID first before calling eos_p2p_close_connection, to prevent the shared physical socket from being torn down prematurely.
The function returns EOS_RESULT.SUCCESS
if the provided data is valid, EOS_RESULT.INVALID_PARAMETERS
otherwise.
Syntax:
eos_p2p_close_connection(local_user_id, remote_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who would like to close a previously accepted connection (or decline a pending invite) |
remote_user_id | String | The Product User ID of the remote user to disconnect from (or to reject a pending invite from) |
socket_name | String | The socket ID of the connection to close (or optionally an empty string to not accept any connection requests from the Remote User) |
Returns:
Epic Online Services Function: EOS_P2P_CloseConnections
This function closes any open Connections for a specific Peer Connection ID.
The function returns EOS_RESULT.SUCCESS
if the provided data is valid, EOS_RESULT.INVALID_PARAMETERS
otherwise.
Syntax:
eos_p2p_close_connections(local_user_id, socket_name)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who would like to close all connections that use a particular socket ID |
socket_name | String | The socket ID of the connections to close |
Returns:
Epic Online Services Function: EOS_P2P_GetNATType
This function gets the last queried NAT type, if it has been successfully queried with eos_p2p_query_nat_type before.
The function returns the previously queried NAT type if cached data is available, or EOS_NAT_TYPE.UNKNOWN
otherwise.
Syntax:
eos_p2p_get_nat_type()
Returns:
Epic Online Services Function: EOS_P2P_GetNextReceivedPacketSize
This function gets the size of the packet that will be returned by eos_p2p_receive_packet for a particular user, if there are any available packets to be retrieved.
Syntax:
eos_p2p_get_next_received_packet_size(local_user_id, requested_channel)
Argument | Type | Description |
---|---|---|
local_user_id | String | The Product User ID of the local user who is receiving the packet |
requested_channel | Real | The channel to request the data for, a value from 0 to 255 (inclusive). If a negative value is passed, we're retrieving the size of the next packet on any channel. |
Returns:
Epic Online Services Function: EOS_P2P_GetPacketQueueInfo
This function gets the current cached information related to the incoming and outgoing packet queues. An empty struct is returned if the input was invalid in some way.
Syntax:
eos_p2p_get_packet_queue_info()
Returns:
Epic Online Services Function: EOS_P2P_GetPortRange
This function gets the current chosen port and the number of other ports to try above the chosen port if the chosen port is unavailable.
The function returns a struct with two variables: out_port
and out_num_additional_ports_to_try
. An empty struct is returned if the input was invalid in some way.
Syntax:
eos_p2p_get_port_range()
Returns:
Epic Online Services Function: EOS_P2P_GetRelayControl
This function gets the current relay control setting, or a negative value if the operation failed.
Syntax:
eos_p2p_get_relay_control()
Returns:
Epic Online Services Function: EOS_P2P_QueryNATType
This function queries the current NAT-type of the connection. It returns an async ID.
This function operates asynchronously, which means that it does not immediately return the requested result. Instead, upon completion of the task, it will trigger the Social Async Event.
Syntax:
eos_p2p_query_nat_type()
Returns:
Triggers:
Key | Type | Description |
---|---|---|
type | String | the string "eos_p2p_query_nat_type"
|
status | EOS_RESULT | The result code for the query |
status_message | String | Text representation of the status code |
identifier | Real | The identifier returned by the call to the function |
nat_type | EOS_NAT_TYPE | The queried NAT type |
Epic Online Services Function: EOS_P2P_ReceivePacket
This function receives the next packet for the local user, and information associated with this packet, if it exists.
The function returns the number of bytes written to the buffer if successful.
Syntax:
eos_p2p_receive_packet(buff, local_user_id, max_data_size_bytes, requested_channel)
Argument | Type | Description |
---|---|---|
buff | Real | The buffer to write the data to |
local_user_id | String | The Product User ID of the user who is receiving the packet |
max_data_size_bytes | Real | The maximum amount of data in bytes that can be safely copied to the buffer in the function call |
requested_channel | Real | An optional channel to request the data for. If a value < 0 is passed, the next packet is retrieved on any channel |
Returns:
Epic Online Services Function: EOS_P2P_RemoveNotifyIncomingPacketQueueFull
This function stops listening for full incoming packet queue events on a previously bound handler.
Syntax:
eos_p2p_remove_notify_incoming_packet_queue_full(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | The previously bound notification ID |
Returns:
N/A
Epic Online Services Function: EOS_P2P_RemoveNotifyPeerConnectionClosed
This function stops notifications for connections being closed on a previously bound handler.
Syntax:
eos_p2p_remove_notify_peer_connection_closed(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | The previously bound notification ID |
Returns:
N/A
Epic Online Services Function: EOS_P2P_RemoveNotifyPeerConnectionEstablished
This function stops notifications for connections being established on a previously bound handler.
Syntax:
eos_p2p_remove_notify_peer_connection_established(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | The previously bound notification ID |
Returns:
N/A
Epic Online Services Function: EOS_P2P_RemoveNotifyPeerConnectionInterrupted
This function stops notifications for connections being interrupted on a previously bound handler.
Syntax:
eos_p2p_remove_notify_peer_connection_interrupted(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | The previously bound notification ID |
Returns:
N/A
Epic Online Services Function: EOS_P2P_RemoveNotifyPeerConnectionRequest
This function stops listening for connection requests on a previously bound handler.
Syntax:
eos_p2p_remove_notify_peer_connection_request(notification_id)
Argument | Type | Description |
---|---|---|
notification_id | Real | The previously bound notification ID |
Returns:
N/A
Epic Online Services Function: EOS_P2P_SendPacket
This function sends a packet to a peer at the specified address. If there is already an open connection to this peer, it will be sent immediately. If there is no open connection, an attempt to connect to the peer will be made. An EOS_RESULT.SUCCESS
result only means the data was accepted to be sent, not that it has been successfully delivered to the peer.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
- If the packet was queued to be sent successfully -
EOS_RESULT.INVALID_PARAMETERS
- If the input was invalid -
EOS_RESULT.LIMIT_EXCEEDED
- If the amount of data being sent is too large, or the outgoing packet queue was full -
EOS_RESULT.NO_CONNECTION
- Ifdisable_auto_accept_connection
was set totrue
and the connection was not currently accepted (call eos_p2p_accept_connection first, or setdisable_auto_accept_connection
tofalse
)
Syntax:
eos_p2p_send_packet(allow_delayed_delivery, disable_auto_accept_connection, channel, local_user_id, reliability, remote_user_id, socket_name)
Argument | Type | Description |
---|---|---|
allow_delayed_delivery | Boolean | If false and we do not already have an established connection to the peer, this data will be dropped |
disable_auto_accept_connection | Boolean | If set to true , eos_p2p_send_packet will not automatically establish a connection with the remote_user_id and will require explicit calls to eos_p2p_accept_connection first whenever the connection is closed. If set to false , eos_p2p_send_packet will automatically accept and start the connection any time it is called and the connection is not already open. |
channel | Real | The channel associated with this data |
local_user_id | String | The Product User ID of the local user who is sending this packet |
reliability | EOS_PACKET_RELIABILITY | Sets the reliability of the delivery of this packet. |
remote_user_id | String | The Product User ID of the Peer you would like to send a packet to |
socket_name | String | The socket ID for data you are sending in this packet |
Returns:
Epic Online Services Function: EOS_P2P_SetPacketQueueSize
This function sets the maximum packet queue sizes that packets waiting to be sent or received can use. If the packet queue size is made smaller than the current queue size while there are packets in the queue that would push this packet size over, existing packets are kept but new packets may not be added to the full queue until enough packets are sent or received.
The function returns EOS_RESULT.SUCCESS
if the input options were valid, or EOS_RESULT.INVALID_PARAMETERS
if the input was invalid in some way.
Syntax:
eos_p2p_set_packet_queue_size(incoming_packet_queue_max_size_bytes, outgoing_packet_queue_max_size_bytes)
Argument | Type | Description |
---|---|---|
incoming_packet_queue_max_size_bytes | Real | The ideal maximum amount of bytes the incoming packet queue can consume |
outgoing_packet_queue_max_size_bytes | Real | The ideal maximum amount of bytes the outgoing packet queue can consume |
Returns:
Epic Online Services Function: EOS_P2P_SetPortRange
This function sets configuration options related to network ports.
It returns one of the following:
-
EOS_RESULT.SUCCESS
- if the options were set successfully -
EOS_RESULT.INVALID_PARAMETERS
- if the options are invalid in some way
Syntax:
eos_p2p_set_port_range(port, max_additional_ports_to_try)
Argument | Type | Description |
---|---|---|
port | Real | The ideal port to use for P2P traffic. The default value is 7777. If set to 0, the OS will choose a port. If set to 0, max_additional_ports_to_try must be set to 0. |
max_additional_ports_to_try | Real | The maximum amount of additional ports to try if port is unavailable. Ports will be tried from port to port + max_additional_ports_to_try inclusive, until one is available or we run out of ports. If no ports are available, P2P connections will fail. The default value is 99. |
Returns:
Epic Online Services Function: EOS_P2P_SetRelayControl
This function sets how relay servers are to be used. This setting does not immediately apply to existing connections, but may apply to existing connections if the connection requires renegotiation.
The function returns one of the following:
-
EOS_RESULT.SUCCESS
- if the options were set successfully -
EOS_RESULT.INVALID_PARAMETERS
- if the options are invalid in some way
Syntax:
eos_p2p_set_relay_control(relay_control)
Argument | Type | Description |
---|---|---|
relay_control | EOS_RELAY_CONTROL | The requested level of relay servers for P2P connections. This setting is only applied to new P2P connections, or when existing P2P connections reconnect during a temporary connectivity outage. Peers with an incompatible setting to the local setting will not be able to connect. |
Returns:
Epic Online Services Enum: EOS_ENATType
This enum holds the possible categories of NAT strictness.
These constants are referenced by the following functions:
Member | Description |
---|---|
UNKNOWN |
The NAT type is either unknown (remote) or EOS is unable to determine it (local) |
OPEN |
All peers can directly-connect to you |
MODERATE |
You can directly-connect to other Moderate and Open peers |
STRICT |
You can only directly-connect to Open peers |
Epic Online Services Enum: EOS_EConnectionEstablishedType
This enum holds the possible types of established connection.
These constants are referenced by the following functions:
Member | Description |
---|---|
NEW_CONNECTION |
The connection is brand new |
RECONNECTION |
The connection is reestablished (reconnection) |
Epic Online Services Enum: EOS_EConnectionClosedReason
This enum holds the possible reasons why a P2P connection was closed.
These constants are referenced by the following functions:
Member | Description |
---|---|
UNKNOWN |
The connection was closed for unknown reasons. This most notably happens during application shutdown. |
CLOSED_BY_LOCAL_USER |
The connection was at least locally accepted, but was closed by the local user via a call to eos_p2p_close_connection / eos_p2p_close_connections. |
CLOSED_BY_PEER |
The connection was at least locally accepted, but was gracefully closed by the remote user via a call to eos_p2p_close_connection / eos_p2p_close_connections. |
TIMED_OUT |
The connection was at least locally accepted, but was not remotely accepted in time. |
TOO_MANY_CONNECTIONS |
The connection was accepted, but the connection could not be created due to too many other existing connections. |
INVALID_MESSAGE |
The connection was accepted, The remote user sent an invalid message. |
INVALID_DATA |
The connection was accepted, but the remote user sent us invalid data. |
CONNECTION_FAILED |
The connection was accepted, but we failed to ever establish a connection with the remote user due to connectivity issues. |
CONNECTION_CLOSED |
The connection was accepted and established, but the peer silently went away. |
NEGOTIATION_FAILED |
The connection was locally accepted, but we failed to negotiate a connection with the remote user. This most commonly occurs if the local user goes offline or is logged-out during the connection process. |
UNEXPECTED_ERROR |
The connection was accepted, but there was an internal error occurred and the connection cannot be created or continue. |
Epic Online Services Enum: EOS_ENetworkConnectionType
This enum holds the possible types of network connection.
These constants are referenced by the following functions:
Member | Description |
---|---|
NO_CONNECTION |
There is no established connection |
DIRECT_CONNECTION |
A direct connection to the peer over the Internet or Local Network |
RELAYED_CONNECTION |
A relayed connection using Epic-provided servers to the peer over the Internet |
Epic Online Services Enum: EOS_EPacketReliability
This enum holds the different types of packet reliability. Ordered packets will only be ordered relative to other ordered packets. Reliable/unreliable and ordered/unordered communication can be sent on the same Socket ID and Channel.
These constants are referenced by the following functions:
Member | Description |
---|---|
UNRELIABLE_UNORDERED |
Packets will only be sent once and may be received out of order |
RELIABLE_UNORDERED |
Packets may be sent multiple times and may be received out of order |
RELIABLE_ORDERED |
Packets may be sent multiple times and will be received in order |
Epic Online Services Enum: EOS_ERelayControl
This enum holds the possible settings for controlling whether relay servers are used. Please see the relay control value compatibility-chart in the Epic Online Services documentation to better understand how changing this value can affect compatibility between clients with different settings. Connections between clients using Incompatible settings may succeed in limited scenarios but should be treated as though they will consistently fail.
These constants are referenced by the following functions:
Member | Description |
---|---|
NO_RELAYS |
Peer connections will never attempt to use relay servers. Clients with restrictive NATs may not be able to connect to peers. |
ALLOW_RELAYS |
Peer connections will attempt to use relay servers, but only after direct connection attempts fail. This is the default value if not changed. |
FORCE_RELAYS |
Peer connections will only ever use relay servers. This will add latency to all connections, but will hide IP Addresses from peers. |
Epic Online Services Struct: EOS_P2P_PacketQueueInfo
This struct contains information related to the current state of the packet queues. It is possible for the current size to be larger than the maximum size if the maximum size changes or if the maximum queue size is set to EOS_P2P_MAX_QUEUE_SIZE_UNLIMITED
.
This struct is referenced by the following functions:
Member | Type | Description |
---|---|---|
incoming_packet_queue_current_packet_count | Real | The current number of queued packets in the incoming packet queue |
incoming_packet_queue_current_size_bytes | Real | The current size in bytes of the incoming packet queue |
incoming_packet_queue_max_size_bytes | Real | The maximum size in bytes of the incoming packet queue |
outgoing_packet_queue_current_packet_count | Real | The current amount of queued packets in the outgoing packet queue |
outgoing_packet_queue_current_size_bytes | Real | The current size in bytes of the outgoing packet queue |
outgoing_packet_queue_max_size_bytes | Real | The maximum size in bytes of the outgoing packet queue |