Написал пошаговую браузерку. Попробовал так и этак. По скорости и трафику существенных различий нет.
- ajax, если у вас например четыре игрока, то клиент игрока должен отправить три запроса серверу что бы получить ответные ходы, а после сделать свой.
- websockets, клиент или сервер отправил сообщение и не знает принято оно или нет, не знает какое из его почти одновременных сообщений будет принято раньше и будет ли вообще. Сервер получил сообщение хода, но не в очередь, что серверу делать с этим ходом? В итоге в пошаговой игре для поддержания consistent state на клиентах и сервере приходится вводить механизмы синхронизации, практически дописывать модель запрос-ответ изначально реализованную в ajax поверх websocket транспорта, а состояние постоянно сбивается-плывет и игра валится и трудно дебажить.
websocket однозначно лучше для стрелялок где скорость важна, а детерменированное состояние не обязательно, ну пропустил пару шагов или выстрелов да и ладно.
Пошаговую следующую игру буду наверное делать на ajax.