Rezvitsky Posted June 7, 2019 Report Share Posted June 7, 2019 (edited) Привет хочу написать LongPoll на языке php на подобии как у вк. Вот код который я написал: https://gist.github.com/60ed883ee42a9e2cf8b6b1c24f494663 Спасибо заранее за любую помощь и совет. Edited June 7, 2019 by Rezvitsky Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 Создай какой-то кеш что бы хранить данные последнего обновления, а не каждый раз отправлять запросы в базу? Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 25 минут назад, Mario сказал: Создай какой-то кеш что бы хранить данные последнего обновления, а не каждый раз отправлять запросы в базу? хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 3 минуты назад, Rezvitsky сказал: хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом. Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 1 минуту назад, Mario сказал: Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом. там стоит проверка на access_token но мне нужно избавится и сделать как у вк Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 2 минуты назад, Rezvitsky сказал: там стоит проверка на access_token но мне нужно избавится и сделать как у вк Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе, как и другие. Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 1 минуту назад, Mario сказал: Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе, как и другие. user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 23 минуты назад, Rezvitsky сказал: user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо В любом случае придется подключаться к бд для проверки ключа, а юзер этот запрос постоянно запрашивает при загрузке сайта (или действия апи, только там на входе), так что избежать этого не выйдет. В вк это называется ключ сессий, в вии сессий нет, там один активный юзер может быть, другого выбрасывает, можно и их сделать и брать тот ключ, принцип тот же что и я писал, но это будет отдельная таблица с сессиями. И в самой версии сайта нужно будет правки делать для некоторых действий. Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 39 минут назад, Mario сказал: В любом случае придется подключаться к бд для проверки ключа, а юзер этот запрос постоянно запрашивает при загрузке сайта (или действия апи, только там на входе), так что избежать этого не выйдет. В вк это называется ключ сессий, в вии сессий нет, там один активный юзер может быть, другого выбрасывает, можно и их сделать и брать тот ключ, принцип тот же что и я писал, но это будет отдельная таблица с сессиями. И в самой версии сайта нужно будет правки делать для некоторых действий. У меня не vii а wowonder + двиг самого longpoll самопис и само api тоже в wowonder есть таблица sessions там присутствует ключ сессии Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 5 минут назад, Rezvitsky сказал: У меня не vii а wowonder + двиг самого longpoll самопис и само api тоже в wowonder есть таблица sessions там присутствует ключ сессии И используй их? Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 Только что, Mario сказал: И используй их? выше посмотри Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 (edited) 10 минут назад, Mario сказал: И используй их? проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта. Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался Edited June 7, 2019 by Rezvitsky Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 15 минут назад, Mario сказал: И используй их? в принципе можно сделать time() + 60 и это с базу с ключем а там уже проверять if($key > $row_key['time']) { Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 22 минуты назад, Rezvitsky сказал: проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта. Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался Зачем его обновлять каждую минуту? Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 (edited) 2 минуты назад, Mario сказал: Зачем его обновлять каждую минуту? ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая Edited June 7, 2019 by Rezvitsky Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 7 минут назад, Mario сказал: Зачем его обновлять каждую минуту? посмотри пожалуйста код он та правильно написал Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 2 минуты назад, Rezvitsky сказал: ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая Ну сброс это и есть обновление ключа, это лишние. Подтверждение при входе с нового устройства сделай и всё, по телефону или электронному адресу. А так стабильный поток запросов, как будто каждый норовит получить этот ключ и видеть кто кому заявку кинул Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 2 минуты назад, Mario сказал: Ну сброс это и есть обновление ключа, это лишние. Подтверждение при входе с нового устройства сделай и всё, по телефону или электронному адресу. А так стабильный поток запросов, как будто каждый норовит получить этот ключ и видеть кто кому заявку кинул lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 Только что, Rezvitsky сказал: lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад. Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 Только что, Mario сказал: Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад. а он в паблике есть чтобы я смог взглянуть как ты сделал Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 Только что, Rezvitsky сказал: а он в паблике есть чтобы я смог взглянуть как ты сделал Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 52 минуты назад, Mario сказал: Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка взгляни на мой код пожалуйста, я там нормально ли сделал Quote Link to comment
Mario Posted June 7, 2019 Report Share Posted June 7, 2019 1 час назад, Rezvitsky сказал: взгляни на мой код пожалуйста, я там нормально ли сделал А что изменилось? Quote Link to comment
Rezvitsky Posted June 7, 2019 Author Report Share Posted June 7, 2019 3 минуты назад, Mario сказал: А что изменилось? я показать так нужно писать lp Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.