Здравствуйте! Вот есть скрипт, который заносит данные в БД...тра-ля-ля... Это понятно... Думал, как мне выводить эти данные динамически на страницу, при том запрос в БД должен идти, когда ему сообщают. Как понял, делается это посредством Daemon. Литературы в Интернете мало, может у кого есть статьи по этой теме или личные наработки? Можно и видео информацию. Надеюсь на вашу помощь.
ну когда пользователь сдеалл запрос, тогда и показывайте обновленные данные. или страница загружена постоянно в браузере и надо обновлять её? тогда можно ajax например. несовсем понятна задача
делаю чат, но обновлять его n-время это как-то глупо, + нужна система уведомлений. лучше бы если на серверной стороне скрипт узнавал, добавилось ли что в БД, если да, то уже отправляет скрипту-обработчику. Рассчитываю на посещаемость 40к в сутки.
Это делается посредством AJAX. Страница в браузере никак с PHP не связана. Это отрыжка сервера, а не пришитая к нему форма. Обновился чат - ajax послал запрос. Тут же. И ждет ответа. Сервер не должен отвечать, пока не будет то, что можно отправить. Только таймаут у аякса надо пожирней и обработчик для него корректный, чтобы перезапуск запроса шел. Как только появится новое сообщение - сразу получите обновление и скрипт опять уйдет "слушать сервер". Будет самый настоящий риалтайм чат без избыточных дерганий сервера каждые n микросекунд. Либо копайте в сторону сокетов. З.Ы. На б-гмерзких фреймах можно написать чать без этих вот аяксов и сокетов вообще. Правда работать будет по олдскульному - обновляясь по собственному таймеру. Энивей, готовьтесь, что нагрузка будет высокой.
Не совсем вас понял. У меня в данный момент реализовано так: js скрипт обновляет блок чата (он находится в блоке див) каждую 1 сек. И мне кажется, когда будет много посещений, то сервер потухнет... Или нет? Просто почитал про демоны, и вроде надо реализовывать ими. Да и + уведомления так если тоже делать, но он точно потухнет... Добавлено спустя 5 минут 2 секунды: Сейчас почитаю, уже слышал мельком про него.... И вопросы такие, хочу знать ваше мнение: 1. Насколько он прост и шустрый? 2. Поможет ли он мне для реализации уведомлений без обновления через n-время и вообще он как-то связан с Daemon PHP?
Пошустрей всяких PHP будет. Только придётся разобраться, что такое неблокирующие операции. (Хотя.. вон была статья в 2010 году: Асинхронное программирование в PHP. Может, будет полезной) Если на сокетах сделаешь, то можно получать сообщения через любое время, не мучая сервер запросами. С PHP никак не связан. Он сам работает как сервер. Нужен хостинг с поддержкой Node, ну или VDS|VPS, на котором ты сможешь сам легко установить. В инете модно приводить пример чата, когда рассказывают о Node, так что проблем с поиском инфы быть не должно.
Ну значит прочитайте еще раз, внимательнее, медленнее, осмысленнее. То, что там описано, работает как раз как своего рода сокет односторонний. Без задрачивания сервера запросами через секунду. Если есть, что отослать - сервер отошлет, если нет - запрос будет ожидающим. Если написать грамотно, нагрузка будет меньше, чем от ежесекундного долбежа, которым вы, по сути, заддосите сами себя в итоге, если проект взлетит. Главное - правильно спроектировать. Продумать ситуации, что бы не было вечных висяков, продумать ситуации, чтобы при большом количестве людей сервер отдавал не каждое новое сообщение всем, а, например, пачками по N штук. Или пачками, собираемыми за N секунд. При активном общении, пользователи и не заметят задержек. Зато сможете нагрузку контроллировать. Постройте графики ожидаемой зависимости роста нагрузки от роста людей. Поверьте, зависимость эта ой как нелинейна...
Вот это я и имел ввиду, если что-то есть, то отсылает. Я думал это с помощью демона. Добавлено спустя 22 минуты 24 секунды: Насколько вообще сложно разобраться с node и как тяжелы в понимание сокеты? Добавлено спустя 36 минут 42 секунды: Всем спасибо, буду копать nodejs. Очень благодарен за помощь!
Не тяжело, но может понадобиться время, конечно, чтобы созреть. Если подойти с энтузиазмом, то даже понравится Ну как ещё ответить? Поисковики в помощь, инфы просто океан.
можете предложить альтернативу? Добавлено спустя 45 минут 53 секунды: Ох, как я понял node никак не связан с php. Есть альтернатива на пхп? Не хочу отказываться от php
нет. пхп рождён чтобы отработал и умер. но можно демонов и на пхп. только я думаю вам демон не нужен. просто обновляйте аяксом и всё.
Не тупо обновлять это не то. Вообще можно все все делать через пхп, а обращаться к пхп из нода? Просто мне надо, чтобы пхп обращался к базе когда там что-то добавилось. Т е. Эту функцию выполняет нода. мне нужен по сути демон. Не предлагайте тупо обновлять. Это не то.
походу я вас понял. Если я отправил что то, то срабатывает как сигнал скрипту, который к примеру вытаскивает данные из БД, которые я отправил. Я правильно вас понял? И вы писали мол нагрузка будет, это вы про сокеты или про такую систему?
Если писать на Node, то PHP не нужен совсем. Для работы с БД есть модули, которые ставятся одной командой Код (Text): npm install mysql заходишь в папку проекта и вызываешь из командной строки, через 3 минуты модуль на месте. Далее подключаешься, как и в PHP: Код (Text): var connection = require('mysql').createConnection({ host: '127.0.0.1', user: 'root', password: 'пароль', database: 'имя_базы' }); Запросы тоже просто: Код (Text): connection.query('SELECT * FROM users', function(err, rows){//все пользователи if(err) throw err; console.log('The solution is: ', rows); });
Единственная причина по которой сомневаюсь его изучать: допустим я сделал форму входа на php и js. Все гуд, но к примеру делаю чат на ноде, то как ему передать данные сессии или куки?
Хорошо, если php, то посмотри в сторону Ratchet и почитай про WebSockets, хотя там тоже не без костылей, от того, что не все браузеры поддерживают, до особенностей разных браузеров. Хотя имхо сделать сервер на Java проще и правильнее будет.
Только читал про Ratchet. Андроид вообще толком не тянет... Такая проблема с браузерами конечно... Веб сокеты смотрел и велосипеды, но никто не связывается почти пхп . Как мне быть? Есть сайт, как соц сеть. Весь на пхп и js. Надо сделать чат, чат главная фишка. Нагрузка 15к где-то максимум.
А как же мне сделать? Весь сайт перегонять под нод....? не. Сроки плюс еще. Чтобы вы сделали? з.ы.На моем месте
Я правда не знаю, как PHP будет справляться с таким количеством сессий и как связать PHP сессии с сокет соединениями, как точно определить клиента. Нужно поискать инфу, наверняка Америка давно открыта. Если нужно взять именно какие-то данные о пользователях из файлов сессий, то можно прочитать и распарсить. Типичная сессия: файл sess_ni2sosge78k6oa7qe8tkofjg21 Код (Text): its_integer|i:10;its_float|d:1.5;its_string|s:7:"my name";its_array|a:4:{i:0;i:1;i:1;i:2;i:2;s:6:"string";s:4:"str2";s:7:"string2";} Уникальный номер - в имени файла, переменные внутри. upd Кстати, когда создаётся сессия, можно узнать её id Код (PHP): echo session_id(); выведет, например, ni2sosge78k6oa7qe8tkofjg21 - это и есть часть имени файла после sess_ Код (Text): sess_ni2sosge78k6oa7qe8tkofjg21