Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Написание Long Poll


Rezvitsky

Рекомендуемые сообщения

Привет хочу написать LongPoll на языке php на подобии как у вк.

Вот код который я написал: https://gist.github.com/60ed883ee42a9e2cf8b6b1c24f494663

Спасибо заранее за любую помощь и совет.

Изменено пользователем Rezvitsky
Ссылка на комментарий
25 минут назад, Mario сказал:

Создай какой-то кеш что бы хранить данные последнего обновления, а не каждый раз отправлять запросы в базу?

хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll

Ссылка на комментарий
3 минуты назад, Rezvitsky сказал:

хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll

Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом.

Ссылка на комментарий
1 минуту назад, Mario сказал:

Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом.

там стоит проверка на access_token но мне нужно избавится и сделать как у вк

Ссылка на комментарий
2 минуты назад, Rezvitsky сказал:

там стоит проверка на access_token но мне нужно избавится и сделать как у вк

Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе,  как и другие.

Ссылка на комментарий
1 минуту назад, Mario сказал:

Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе,  как и другие.

user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо

Ссылка на комментарий
23 минуты назад, Rezvitsky сказал:

user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо

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

Ссылка на комментарий
39 минут назад, Mario сказал:

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

У меня не vii а wowonder + двиг самого longpoll самопис и само api тоже в wowonder есть таблица sessions там присутствует ключ сессии

Ссылка на комментарий
10 минут назад, Mario сказал:

И используй их?

проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта.  Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался

Изменено пользователем Rezvitsky
Ссылка на комментарий
22 минуты назад, Rezvitsky сказал:

проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта.  Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался

Зачем его обновлять каждую минуту?

Ссылка на комментарий
2 минуты назад, Mario сказал:

Зачем его обновлять каждую минуту?

ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая

Изменено пользователем Rezvitsky
Ссылка на комментарий
2 минуты назад, Rezvitsky сказал:

ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая

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

Ссылка на комментарий
2 минуты назад, Mario сказал:

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

lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. 

Ссылка на комментарий
Только что, Rezvitsky сказал:

lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. 

Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад.

Ссылка на комментарий
Только что, Mario сказал:

Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад.

а он в паблике есть чтобы я смог взглянуть как ты сделал

Ссылка на комментарий
Только что, Rezvitsky сказал:

а он в паблике есть чтобы я смог взглянуть как ты сделал

Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка

Ссылка на комментарий
52 минуты назад, Mario сказал:

Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка

взгляни на мой код пожалуйста, я там нормально ли сделал

Ссылка на комментарий
×
×
  • Создать...