3.1.5.6 Client Detects Loss of Connection to Other Client
A client can detect the loss of connection to another client (departing client) in the game session.
The client that detected the loss of connection sends a TRANS_USERDATA_REQ_INTEGRITY_CHECK (section 2.2.27) packet to the server to request that the server determine whether the departing client is still in the game session.
The server sends a TRANS_USERDATA_INTEGRITY_CHECK (section 2.2.28) packet to the departing client containing the DPNID of the client that detected the loss of connection.
If the departing client does not respond in time to the TRANS_USERDATA_INTEGRITY_CHECK packet, the server sends the TRANS_USERDATA_DESTROY_PLAYER (section 2.2.15) packet to the client that detected the loss of connection, asking it to remove the departing client entry from its name table.
If the departing client responds to the server with a TRANS_USERDATA_INTEGRITY_CHECK_RESPONSE (section 2.2.29) packet, the server sends a TRANS_USERDATA_TERMINATE_SESSION (section 2.2.14) packet to the client that detected the loss of connection.
The client that detected the loss of connection removes itself from the session by sending a TRANS_USERDATA_END_OF_STREAM (section 2.2.16) packet to the server.
The server sends four TRANS_COMMAND_SACK (section 2.2.9) packets and one TRANS_USERDATA_END_OF_STREAM packet in any order to the client that detected the loss of connection.
The client that detected the loss of connection replies with four TRANS_COMMAND_SACK packets.
The server notifies the departing client of the removal of the client that detected the loss of connection by sending TRANS_USERDATA_DESTROY_PLAYER to the departing client.