Rezvitsky Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 (изменено) Привет хочу написать LongPoll на языке php на подобии как у вк. Вот код который я написал: https://gist.github.com/60ed883ee42a9e2cf8b6b1c24f494663 Спасибо заранее за любую помощь и совет. Изменено 7 июня, 2019 пользователем Rezvitsky Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 Создай какой-то кеш что бы хранить данные последнего обновления, а не каждый раз отправлять запросы в базу? Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 25 минут назад, Mario сказал: Создай какой-то кеш что бы хранить данные последнего обновления, а не каждый раз отправлять запросы в базу? хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 3 минуты назад, Rezvitsky сказал: хорошая идея, а ты не можешь подсказать как сделать передачу key в longpoll Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом. Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 1 минуту назад, Mario сказал: Ты же и так берешь ид юзера ($access_token[user_id]), от него и ориентируйся с префиксом и/или суфиксом. там стоит проверка на access_token но мне нужно избавится и сделать как у вк Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 2 минуты назад, Rezvitsky сказал: там стоит проверка на access_token но мне нужно избавится и сделать как у вк Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе, как и другие. Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 1 минуту назад, Mario сказал: Тогда не понял проблему, сгенерируй в базе что-то уникальное и закрепи за ид юзера, при смене его пароля меняй эту строку, ее же и передавай через $_POST вместе с временем задержки и узнавай ид юзера. С чего вк генерирует я не в курсе, как и другие. user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 23 минуты назад, Rezvitsky сказал: user_id + time() + sha1 я вот тоже думал через бд но там как то по другому, буду пробывать с помощью бд. Спасибо В любом случае придется подключаться к бд для проверки ключа, а юзер этот запрос постоянно запрашивает при загрузке сайта (или действия апи, только там на входе), так что избежать этого не выйдет. В вк это называется ключ сессий, в вии сессий нет, там один активный юзер может быть, другого выбрасывает, можно и их сделать и брать тот ключ, принцип тот же что и я писал, но это будет отдельная таблица с сессиями. И в самой версии сайта нужно будет правки делать для некоторых действий. Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 39 минут назад, Mario сказал: В любом случае придется подключаться к бд для проверки ключа, а юзер этот запрос постоянно запрашивает при загрузке сайта (или действия апи, только там на входе), так что избежать этого не выйдет. В вк это называется ключ сессий, в вии сессий нет, там один активный юзер может быть, другого выбрасывает, можно и их сделать и брать тот ключ, принцип тот же что и я писал, но это будет отдельная таблица с сессиями. И в самой версии сайта нужно будет правки делать для некоторых действий. У меня не vii а wowonder + двиг самого longpoll самопис и само api тоже в wowonder есть таблица sessions там присутствует ключ сессии Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 5 минут назад, Rezvitsky сказал: У меня не vii а wowonder + двиг самого longpoll самопис и само api тоже в wowonder есть таблица sessions там присутствует ключ сессии И используй их? Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 Только что, Mario сказал: И используй их? выше посмотри Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 (изменено) 10 минут назад, Mario сказал: И используй их? проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта. Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался Изменено 7 июня, 2019 пользователем Rezvitsky Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 15 минут назад, Mario сказал: И используй их? в принципе можно сделать time() + 60 и это с базу с ключем а там уже проверять if($key > $row_key['time']) { Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 22 минуты назад, Rezvitsky сказал: проблема в том что для longpoll нужно обновлять это каждый раз а для юзера это выход с сайта. Как бы сделать так чтобы ключ key для longpoll был доступен минуту а потом сбрасывался Зачем его обновлять каждую минуту? Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 (изменено) 2 минуты назад, Mario сказал: Зачем его обновлять каждую минуту? ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая Изменено 7 июня, 2019 пользователем Rezvitsky Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 7 минут назад, Mario сказал: Зачем его обновлять каждую минуту? посмотри пожалуйста код он та правильно написал Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 2 минуты назад, Rezvitsky сказал: ты не понял сделать чтобы был 1минуту доступен а потом сбрасывать, защита такая Ну сброс это и есть обновление ключа, это лишние. Подтверждение при входе с нового устройства сделай и всё, по телефону или электронному адресу. А так стабильный поток запросов, как будто каждый норовит получить этот ключ и видеть кто кому заявку кинул Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 2 минуты назад, Mario сказал: Ну сброс это и есть обновление ключа, это лишние. Подтверждение при входе с нового устройства сделай и всё, по телефону или электронному адресу. А так стабильный поток запросов, как будто каждый норовит получить этот ключ и видеть кто кому заявку кинул lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 Только что, Rezvitsky сказал: lp.ivinete.ru/longpoll вот сервер на него передаются key ts и wait когда пользователю пришло новое смс то ему сразу выскакивает уведомление. Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад. Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 Только что, Mario сказал: Не понял к чему это, я знаю как работает лп, и на вии продавал его несколько лет назад. а он в паблике есть чтобы я смог взглянуть как ты сделал Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 Только что, Rezvitsky сказал: а он в паблике есть чтобы я смог взглянуть как ты сделал Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 52 минуты назад, Mario сказал: Может где-то и есть, лично я не публиковал, да и уже нет ничего от вии. Там тоже самое подобие о чем я выше писал, но без сессий. Для обычной вии просто делалось. А так-то оно идентичное везде, цикл, проверка на обновления данных, вывод, задержка взгляни на мой код пожалуйста, я там нормально ли сделал Ссылка на комментарий
Mario Опубликовано 7 июня, 2019 Жалоба Поделиться Опубликовано 7 июня, 2019 1 час назад, Rezvitsky сказал: взгляни на мой код пожалуйста, я там нормально ли сделал А что изменилось? Ссылка на комментарий
Rezvitsky Опубликовано 7 июня, 2019 Автор Жалоба Поделиться Опубликовано 7 июня, 2019 3 минуты назад, Mario сказал: А что изменилось? я показать так нужно писать lp Ссылка на комментарий
Рекомендуемые сообщения