Показать сообщение отдельно
Старый 08.04.2013, 19:07   #174
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Black Bird (Unity Project Web Version)

Сообщение от pax Посмотреть сообщение
Нету, сервер только рассылает пакеты.
Тогда второй вариант - имхо, единственная возможность иметь список "кто-онлайн".

А вообще я бы написал node.js процесс в 150 строк, который бы в памяти хранил бы хэшь таблицу пользователей, сам бы таймером это дело и обчищал, и имел бы 3 REST запроса: PUSH, DELETE, GET.
Матч сервер кидает ID матч сервера и ID пользователя.
При выходе DELETE с ID пользователя - почистит пользователя.
И GET - с ID пользователя. Это заставит процесс сделать запрос в VK API для получения списка друзей приложения, далее при получении ответа, соберёт массив из хеш таблицы по ID пользователей. Чаще всего конечно он будет пустым :D.
И выдаст ответом.

Ну и простой интервал - раз в минуту почистить хеш таблицу.

Такой процесс будет очень эффективен, за счёт node.js асинхронности и не блокируемости запросов, также не нужна БД, т.к. хеш таблица в памяти.
Сотни тысяч пользователей - вполне простая задача для такого процесса.

Это по сути всё то же что я описал ранее как второй вариант, только проще, шустрее и эффективнее.
Очевидно - что это ну должно быть зависимой туулзой - а лишь nice-to-have, и клиент при неудачном запросе на получение списка друзей - не должен валиться, очевидно и для PHP + MySQL так же.

ЗЫ,
Могу даже написать такой мелкий процесс, и дать инструкции как это дело запустить будет на сервере (если он конечно позволяет ставить и запускать что хотите, а не тупо виртуальный).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilChaotic (09.04.2013)