Недавно разработали клиент серверную игру на движке cocos2d-x. Сервер писали на Node.js , в качестве протокола передачи данных использовали Websocket. Сейчас мы столкнулись с такой проблемой , при плохом соединении (3g) происходит обрыв связи а так как websocket базируется на tcp. Как вы думаете лучше перейти на udp или все таки остаться websocket и решить эту проблему автоматическим реконектом?
Далеко не уверен, что udp будет пропускаться сетевой архитектурой (на пути от клиента к вам). Лучше обеспечить максимальное сжатие протокола (улучшит работу, так как размер данных будет меньше), ну и реализовать переподключения самостоятельно. Если получится - попробуйте SPDY, к примеру.
1. Точно реконнектом.
2. Блочить или нет игру в этот момент - зависит от типа игры.
Если игра пошаговая или кто быстрее - то можно и не лочить.. После появления связи - синхронизировать таймеры и все.