Xbox LIVE encrypts all network traffic. This makes it hard for people to cheat by intercepting and modifying packets. However, communication data is required to be sent via an unencrypted channel.
Because of this, each LIVE packet contains two sections. The first part contains encrypted gameplay data, while the second contains unencrypted voice or text chat information.
In the 2.0 XNA Framework, all data sent by your game went in the encrypted part of the packet, while voice was automatically sent unencrypted. Text chat was not permitted, as there was no unencrypted channel available for it.
In 3.0, we are enabling text chat by adding a new SendDataOptions.Chat flag. Here's how this works:
- Data sent with this flag is not encrypted
- Data sent without it is encrypted, exactly as before
- If you send both chat and non-chat data before calling NetworkSession.Update, both kinds of information will be merged into a single physical wire packet
- The Chat option can be combined with the Reliable and/or InOrder flags
- InOrder chat data is only ordered relative to other chat data, but may arrive jumbled up with regard to non-chat InOrder packets
What you should do:
- Use SendDataOptions.Chat for all text chat data
- Do not use it for any other game data