Facepunch.Steamworks Wiki

Revision Difference

Data.ConnectionState#523617

<type category="enum" namespace="Steamworks.Data" name="ConnectionState" is="enum"> <summary>High level connection state</summary>⤶ <entries> <entry name="None" value="0"></entry>⤶ <entry name="Connecting" value="1"></entry>⤶ <entry name="FindingRoute" value="2"></entry>⤶ <entry name="Connected" value="3"></entry>⤶ <entry name="ClosedByPeer" value="4"></entry>⤶ <entry name="None" value="0">Dummy value used to indicate an error condition in the API.⤶ Specified connection doesn't exist or has already been closed.⤶ </entry>⤶ <entry name="Connecting" value="1"> We are trying to establish whether peers can talk to each other,⤶ whether they WANT to talk to each other, perform basic auth,⤶ and exchange crypt keys.⤶ ⤶ - For connections on the "client" side (initiated locally):⤶ We're in the process of trying to establish a connection.⤶ Depending on the connection type, we might not know who they are.⤶ Note that it is not possible to tell if we are waiting on the⤶ network to complete handshake packets, or for the application layer⤶ to accept the connection.⤶ ⤶ - For connections on the "server" side (accepted through listen socket):⤶ We have completed some basic handshake and the client has presented⤶ some proof of identity. The connection is ready to be accepted⤶ using AcceptConnection().⤶ ⤶ In either case, any unreliable packets sent now are almost certain⤶ to be dropped. Attempts to receive packets are guaranteed to fail.⤶ You may send messages if the send mode allows for them to be queued.⤶ but if you close the connection before the connection is actually⤶ established, any queued messages will be discarded immediately.⤶ (We will not attempt to flush the queue and confirm delivery to the⤶ remote host, which ordinarily happens when a connection is closed.)⤶ </entry>⤶ <entry name="FindingRoute" value="2">Some connection types use a back channel or trusted 3rd party⤶ for earliest communication. If the server accepts the connection,⤶ then these connections switch into the rendezvous state. During this⤶ state, we still have not yet established an end-to-end route (through⤶ the relay network), and so if you send any messages unreliable, they⤶ are going to be discarded.⤶ </entry>⤶ <entry name="Connected" value="3">We've received communications from our peer (and we know⤶ who they are) and are all good. If you close the connection now,⤶ we will make our best effort to flush out any reliable sent data that⤶ has not been acknowledged by the peer. (But note that this happens⤶ from within the application process, so unlike a TCP connection, you are⤶ not totally handing it off to the operating system to deal with it.)⤶ </entry>⤶ <entry name="ClosedByPeer" value="4"> Connection has been closed by our peer, but not closed locally.⤶ The connection still exists from an API perspective. You must close the⤶ handle to free up resources. If there are any messages in the inbound queue,⤶ you may retrieve them. Otherwise, nothing may be done with the connection⤶ except to close it.⤶ ⤶ This stats is similar to CLOSE_WAIT in the TCP state machine.⤶ </entry>⤶ <entry name="ProblemDetectedLocally" value="5"></entry> <entry name="Force32Bit" value="2147483647"></entry> <entry name="Dead" value="-3"></entry> <entry name="Linger" value="-2"></entry> <entry name="FinWait" value="-1"></entry> </entries> </type>