Как я могу иметь общий объект между сокетами в модуле ввода-вывода сокета gevent


Я пытаюсь реализовать сокеты, используя клиентскую библиотеку socket.io и серверную реализацию для Python, gevent-socketio. Я получил сервер для запуска и сокеты для работы. Тем не менее, я пытаюсь реализовать какую-то простую браузерную игру (которую я не писал!) и игра происходит полностью в пределах одного экземпляра класса игры. Это работает примерно так:

game = Game([player1,player2])
game.turn(player1, action_one)
game.turn(player2, action_two)
...
print game.winner()

Поскольку я хочу использовать сокеты для поворотов, мне нужен какой-то способ поделиться объектом game на сервере сторона между различными гнездами (игроками). Как я мог это сделать? Мне бы очень не хотелось хранить каждое состояние игры на диске или в какой-то базе данных. Есть ли другой вариант?

2 3

2 ответа:

Похоже, чтоPyro - это именно то, что мне нужно.

Непонятно, в чем заключается ваша проблема. Если вы обрабатываете io разных сокетов в одном и том же процессе (вероятно, в разных greenletes), это не проблема для обмена данными между разными обработчиками сокетов. Не могли бы вы описать вашу проблему более подробно?