@small-newbie

Как связать 2 клиента, подключенных к серверу на Python, между собой?

Есть небольшое простенькое приложение, которое работает как эхо-сервер. На Python. Каждое подключение он определяет в отдельный поток.
Это приложение задумывалось как сервер для небольшой игры - пользователи к нему подключаются, каким-то образом находится пара подходящих друг другу и они связываются в единое "что-то" (попадают в отдельную комнату), в которой происходит обмен сообщения между ними и сервером.
Не могу понять, как это реализовать. Возможно, я запутался в терминах и делаю вообще не то?
  • Вопрос задан
  • 2450 просмотров
Пригласить эксперта
Ответы на вопрос 2
mututunus
@mututunus
Backend developer (Python, Golang)
Во сути вам нужен чат. Он легко реализуется на Tornado.
Пример реализации habrahabr.ru/post/160123
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Как вариант можно воспользоваться очередью сообщений. Клиент должен иметь интерфейс:
*написать в очередь с именем X
*забрать сообщение если оно есть
*подписаться на обновления очереди X

Создаем очередь для поиска игры. Подписываемся на нее и добавляем в нее себя. Когда нам приходит уведомление что некий Вася написал в эту очередь пытаемся с ним связаться напрямую или через персональную очередь Васи. Если Вася все еще свободен он отвечает ОК и вы начинаете игру, иначе ждем следующего подходящего игрока.
В таком варианте "комната" это либо прямое TCP соединение либо пара личных очередей сообщений Васи и Пети которые играют между собой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы