Как мне сохранить постоянный кусок данных, обновляемый через сокет в Python? - PullRequest
0 голосов
/ 30 мая 2011

У меня есть клиент и сервер, оба написаны на Python 2.7.

Допустим, я хотел создать многопользовательский игровой сервер (чего я сейчас не делаю, но работаю над этим),Я должен был бы поддерживать сервер в актуальном состоянии (и других клиентов) о местонахождении моих персонажей, правильно?

Как бы я сделал это с сокетами?Отправлять или запрашивать информацию только тогда, когда это необходимо (например, перемещается персонаж или другой персонаж игрока, а сервер отправляет информацию другим клиентам) или я оставляю постоянный сокет открытым для отправки данных в режиме реального времени о движении КАЖДОГО, независимо от того,на самом деле они что-то сделали с момента отправки последнего фрагмента данных или нет.

Мне не составит труда написать код, мне просто нужна помощь с концепцией того, как я на самом деле это сделал бы.

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Для сокетов TCP более типично оставлять соединения открытыми, учитывая стоимость разрыва и восстановления.В конце концов, при масштабировании вы действительно загляните в NewIO \ RawIO.

Если вы этого не сделаете, представьте, что игровой клиент может сделать шаг и не получить подтверждение при отправке его на сервер и другим игрокам.

0 голосов
/ 30 мая 2011

Определенно оставляйте сокет открытым, но вы должны рассмотреть возможность использования чего-то вроде ZeroMQ , который дает вам больше видов сокетов для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...