Здравствуйте.
Поясню подробно, чтобы прояснить основные моменты и исключить возможные недопонимания в дальнейшем.
Сложность в том, что каждая новая версия - это добавление нового функционала. Протокол связи обновляется и дополняется. В каждой версии.
Следовательно, чтобы обеспечить работу старых версий, не заставляя их обновляться в принудительном порядке, нам надо на сервере отслеживать, какая точно версия клиента подключается, и какие данные ей можно отправлять, а какие не нужно, потому что версия старая и она не сможет их корректно обработать. Или как новые данные отправить так, чтобы старая версия смогла их обработать.
Мало того, таких проверок и "костылей" будет чудовищное количество и их число будет возрастать
каждую новую версию клиента. Если вы посмотрите на
протокол связи MyChat (он уже открыт для всех желающих), то увидите, что команд -
сотни. Уже хотя бы на основании этого можно сделать вывод о сложности программного обеспечения MyChat.
Нам это не нужно, это сильно усложняет и увеличивает время на разработку, порождает очень большое количество трудноуловимых ошибок и также усложняет на порядок сопровождение программы.
Совместимости сервера со старыми версиями клиентов - не будет. Вопрос закрыт.