Несколько вопросов по протоколу Tox

Questions to developers
Tasheehoo
Posts: 4
Joined: Thu Jan 14, 2016 2:36 pm

Несколько вопросов по протоколу Tox

Postby Tasheehoo » Thu Jan 14, 2016 2:54 pm

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

Tox wiki(https://wiki.tox.chat/doku.php?id=start&idx=developers) я прочел.

Допустим у меня есть некоторая онлайн игра, пошаговая, поэтому время доставки сообщений не играет роли.
Я хочу избавить игру от необходимости хостить сервер где-нить, и я подумал что было бы здорово создать сервер работающий по протоколу Tox и клиентов соответствено перевести на использование этого протокола.
Первый вопрос очень общий: возможно ли в принципе?

Следующий вопрос в том, что, насколько я понимаю, у меня "сервер" должен иметь свой Tox-ID, и все клиенты должны коннектится к нему. Вопрос в том: сможет ли мой "серверный" Tox-ID поддерживать(общаться) с более тысачью клиентов? Есть ли вообще такое ограничение?

И еще вопрос: протокол Tox имеет ограничение на размер сообщения?


Буду признателен если сможете ответить на мои оффтопные вопросы)

Tasheehoo
Posts: 4
Joined: Thu Jan 14, 2016 2:36 pm

Re: Несколько вопросов по протоколу Tox

Postby Tasheehoo » Thu Jan 14, 2016 8:18 pm

Нашел ограничение на размер сообщения: https://github.com/irungentoo/toxcore/blob/master/toxcore/tox.h#L255
Это расстраивает...

У вас в статье на хабре(http://habrahabr.ru/post/274417/) говорится о том, что вы реализовали неограниченную длинну сообщений. Можете сориентировать меня плиз в вашем форке на эти изменения?


зы
при попытке отправить еще одно сообщение форум говорит "You cannot make another post so soon after your last.", хотя прошло уже более часа...

Tasheehoo
Posts: 4
Joined: Thu Jan 14, 2016 2:36 pm

Re: Несколько вопросов по протоколу Tox

Postby Tasheehoo » Fri Jan 15, 2016 11:42 am

По поводу ограничения на кол-во клиентов. Насколько я понимаю, это список друзей, и ограничивается он INT32_MAX(https://github.com/irungentoo/toxcore/blob/master/toxcore/tox.h#L1031).

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Несколько вопросов по протоколу Tox

Postby admin » Fri Jan 15, 2016 2:45 pm

Tox - p2p протокол, значит никаких серверов для работы не требуется.
Чтобы запустить игру на этом протоколе, нужно решить задачу нахождения клиентов.
Т.о. как я это вижу:
1. Игра при первом запуске или создании нового игрового аккаунта, создает ToxID (это стандартная функциональность toxcore)
2. Игра публикует созданный ToxID (где - это надо решать)
3. Оттуда же игра достает ToxID других игроков
4. Отправляются запросы на добавление в друзья и аппрувятся чужие запросы (игра делает это автоматически)
5. Протокол позволяет отправлять кастомные пакеты. Игра может спокойно этим воспользоваться

Тут сложность только в месте публикации игровых ToxID. Можно, например, для этих целей использовать какой-нибудь бесплатный форум. Вобщем, это надо как-то решить. В принципе, игроку можно выплюнуть на экран ToxID и сказать, чтобы он по своим каналам сообщил его своим друзьям, с которыми хочет играть в эту игру.
Да, как вариант, держать т.н. сервер игры - постоянно запущенный Tox клиент. Ограничений на количество контактов нет, но это плохая идея. Кажется в ядре заложены ограничения на количество добавлений. Во всяком случае, когда я с этим экспериментировал, каждое следующее добавление проходило дольше предыдущего. Вобщем, я не уверен, что такая схема заработает, как нужно.

Как-то так.
По неограниченным сообщениям я сделал так: http://isotoxin-dev.livejournal.com/4351.html (описание доп возможностей клиента)

Tasheehoo
Posts: 4
Joined: Thu Jan 14, 2016 2:36 pm

Re: Несколько вопросов по протоколу Tox

Postby Tasheehoo » Sat Jan 16, 2016 1:15 pm

Нет, клиенты напрямую между собой не общаются. Все общение только через сервер. Поэтому вопрос нахождения клиентов отпадает.
Т.е. все клиенты имеют вшитый ToxID сервера, и общаются с ним.

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

> По неограниченным сообщениям я сделал так: http://isotoxin-dev.livejournal.com/4351.html
Спасибо. Пробую собрать ваш форк...


Return to “Developer online”

Who is online

Users browsing this forum: No registered users and 2 guests

cron