Страница 1 из 2

В игре ли пользователь или нет

Добавлено: 06 сен 2012, 11:49
XELAD
Здравствуйте.
Ситуация такова:
Есть flash приложение без контейнера. У каждого пользователя в игре есть свой участок.
Идея:
Когда пользователь заходит к другу, и тот не в игре, то приложение сохранит изменения на участке друга. Как будто пользователь был владельцем того участка.
Но когда пользователь заходит к другу, и тот в игре, то приложение не сохранит изменения на участке друга.
Задача:
Когда участок пытается сохраниться не от имени его владельца, мы должны узнать в игре ли владелец, и сохранить если он отсутствует.
Пояснение:
Игра сохраняется периодически, другими словами постоянный обмен с сервером не ведется, постоянная запись в mySQL "я в игре" отпадает.
Мне не требуется узнавать, online ли в ВК пользователь, нужно узнать в игре ли он.

Обдумывал этот вопрос и так и сяк, с одной стороны нужно, "когда участок пытается сохраниться", чтобы сервер запросил у владельца, в игре ли он. Ответа нет - значит не в игре. Я много раз использовал POST к серверу, вызывал скрипт и получал ответ. Возможен ли вообще обратный процесс, когда сервер без запроса что-то передаст пользователю (к примеру по IP, которому было последнее сохранение игрока)?
Или другой вариант, в связи с новыми обновлениями, когда в статусе пользователя указывают что он в таком-то приложении, можно ли через VKapi получить эту информацию?
Или может я придумываю велосипед, если нужны какие-либо дополнения, всё расскажу.

Задача непростая, буду рад помощи! Спасибо заранее.

Re: В игре ли пользователь или нет

Добавлено: 06 сен 2012, 13:19
sanych_dv
Смотрите в сторону p2p.

Re: В игре ли пользователь или нет

Добавлено: 06 сен 2012, 15:30
XELAD
Интересует вот это http://vk.com/developers.php?oid=-1&p=% ... 1%82%D0%B5
, а точнее временные переменные 1536-4095. Как там написано "могут быть стерты по истечении часа".
Предположим действовать по такой системе: владелец участка зашел и записал в эту временную переменную "я в игре". Друг зашел в гости, VKapi прочитала переменную и выяснила что владелец в игре.
Возникает вопрос, когда удаляются эти временные переменные, кто-нибудь их использовал, дайте совет?

Re: В игре ли пользователь или нет

Добавлено: 06 сен 2012, 16:07
Serge
Не знаю, можно ли, просто может поможет.
Когда запускаешь приложение в статус идет его название, пока не снимешь ручками галку. Возможно это можно как-то использовать.

Re: В игре ли пользователь или нет

Добавлено: 10 сен 2012, 14:12
XELAD
Понимаю,что форум не работал, но неужели никто не использовал putVariable во временные переменные?
Попробовал у себя, почему то они вообще не удаляются, день прошел :(
Понимаю, что можно создать аналог у себя на сервере, но не хочется изобретать колесо.

Re: В игре ли пользователь или нет

Добавлено: 10 сен 2012, 14:32
sanych_dv
Когда пользователь зашел в приложение - вы отследите. А вот когда вышел - это большой вопрос. И останется в вашей переменной значение online = true )

Re: В игре ли пользователь или нет

Добавлено: 10 сен 2012, 19:48
XELAD
Это я прекрасно понимаю. На странице (по приведенной выше ссылке) указано чёрным по белому: "временные переменные могут быть стерты по истечении часа". Что значит "могут быть" - не объяснено. По какому принципу удаляются, тоже. Но суть не в этом, мне важен факт того, что они именно удалятся. Пока что этот факт я не наблюдаю, хотя putVariable и другие "устаревшие методы" работают... :?

Re: В игре ли пользователь или нет

Добавлено: 10 сен 2012, 23:26
sanych_dv
p2p будет работать не на 100%, но в любом случае намного точнее, чем отфонарное по времени удаление сессии. И если уж пользовать сессионные переменные, то хранить их на своем сервере.

Re: В игре ли пользователь или нет

Добавлено: 11 сен 2012, 00:04
XELAD
sanych_dv
Посмотрел я p2p, немного не понял каким боком его применять. Если набросаете план, буду очень благодарен.

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

Re: В игре ли пользователь или нет

Добавлено: 11 сен 2012, 01:25
sanych_dv