Capabilities
Capabilities are used to extend the Sock Chat protocol without breaking compatibility with existing implementations.
The client sends C2S Packet 3: Client Info to inform the server of its capabilities before submitting the authorization packet. The server will then either reply with S2C Packet 11: Server Info with the capabilities the server supports and accepted, or ignore the packet because it does not understand the client info packet, in which case the client should behave identically to the original PHP Sock Chat client. The timeout to wait for a response should be at least 5 seconds. Capability negotiation can only happen once per connection before the C2S Packet 1: Authorization Attempt is sent by the client. This is made possible by the original PHP Sock Chat server just ignoring unknown packet IDs, thank you reemo!
As of yet no capabilities have been defined.