Артем Л.
11416 повідомлень
#15 років тому
Решил изучить новую технологию, вот не знаю с чего начать...
На простом примере объясню что именно. Допустим игра крестики нолики, поле три на три, два игрока...
Один ставит крестик, у второго игрока на другом компьютере этот крестик отображается и затем он ставит нолик, который сразу (возможно с небольшой задержкой) отображается у первого игрока...
Таких игровых полей по 2 пользователя может быть много в одно время...

Новые слова которые узнал: keep-alive, Comet-сервер....
Посоветовали начать с Dklab Realplexor -

Внимание вопрос:
Можно ли как-то это все реализовать проще, с учетом того что пользователей будет много и на аяксе сделать наверное не получится, т.к. будет ддос...
(Например слать запрос, допустим, каждые 5 секунд и проверять, сходил второй игрок или нет, если сходил, обновить поле...)
Кто что подскажет? В теме вообще не шарю, но научиться нужно С чего начать, что где почитать?
Спасибо...
Дмитрий Войциховский
2128 повідомлень
#15 років тому
Если делать попроще, то берем движок чата и через личные сообщения посылаем и служебную информацию, которая потом трансформируется ходами.
Так можно играть в шашки/шахматы и.т.п. простые игры.
Владислав Р.
265 повідомлень
#15 років тому
Цитата ("Hungry_Hunter"):
Например слать запрос, допустим, каждые 5 секунд

Клиентское приложение само должно сообщать серверу, что ход сделан.
Роман Беляев
16382 повідомлення
#15 років тому
Цитата:
с учетом того что пользователей будет много и на аяксе сделать наверное не получится, т.к. будет ддос...


Не думаю. Посылочки будут мелкие, если состояние хранить правильно, без больших нагрузок, то никаких проблем не будет. Думаю, что можно и на привычных AJAX методах это все сделать. Если игра не слишком активная, то задержку опроса побольше и вперед :-)
Все равно механизм будет с выделенным сервером и все будет ходить через него.


UPD: Можно вообще дойти до примитивизма - в процессе игры хранить результаты в файле, куда они положены скриптом. Прямо json готовый. С клиентской стороны грузим файлик, делаем eval и получаем текущее состояние поля. Так вообще только веб сервер задействован. А если еще и навернуть сжатие, то и трафик будет мизерный. При ходе меняем содержимое файла и "продолжаем разговор" . Должно быть очень легковесно, на мой взгляд.
Антон Е.
279 повідомлень
#15 років тому
Думаю не нужно чтоб клиенты каждые 5 сек опрашивали сервер о том.сходил ли второй игрок ибо это будут нифиговые нагрузки если людей много. Нужно чтобы клиент после хода посылал команду серверу,что ход сделан и сервер потом посылал команду его оппоненту что тот сделал ход. Вот представьте какой трафик и нагрузку вызвал бы обычны icq протоколо если бы не сервер сообщал,что пришло сообщение,запрос авторизации итд,а каждые 5 секунд проверял все возможные параметры у всех контактов и таких пользователей миллионы... ИМХО