Автоматическое уведомление
Автоматическое уведомление
Собственно название темы может быть немного некорректным, но как правильно обозвать не очень представляю, так что пусть будет так)
Нужно создать уведомление пользователя о например каком либо событии. Причем проверка должна быть на каждой странице.
Впрочем это в принципе понятно как. Не понятно как сделать что бы уведомление появлялось если пользователь страницу не перезагружал... именно с этим и есть проблема.
Например:
Пользователь1 отправить Пользвателю2 личное сообщение.
Пользователь2 в это время находится на сайте но страницы не перезагружает(допустим эта страница с текстом и этого текста там много... минут на 30 чтения), при этом сообщение от Пользователя1 наш Пользователь2 должен увидеть как можно скорее. Вариант с почтой не подходит. Я знаю что такое можно сделать, но как - пока не очень представляю. Точнее представляю но считаю это немного неправильным. Есть у кого какие идеи как это правильно делать?
Нужно создать уведомление пользователя о например каком либо событии. Причем проверка должна быть на каждой странице.
Впрочем это в принципе понятно как. Не понятно как сделать что бы уведомление появлялось если пользователь страницу не перезагружал... именно с этим и есть проблема.
Например:
Пользователь1 отправить Пользвателю2 личное сообщение.
Пользователь2 в это время находится на сайте но страницы не перезагружает(допустим эта страница с текстом и этого текста там много... минут на 30 чтения), при этом сообщение от Пользователя1 наш Пользователь2 должен увидеть как можно скорее. Вариант с почтой не подходит. Я знаю что такое можно сделать, но как - пока не очень представляю. Точнее представляю но считаю это немного неправильным. Есть у кого какие идеи как это правильно делать?
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
- flashimage
- Сообщения: 1517
- Зарегистрирован: 2011.01.23, 12:43
Re: Автоматическое уведомление
Это называется server push. Малой кровью реализуется с помощью периодического ajax запроса для проверки. А если уже правильно, то надо смотреть в сторону long polling, websockets... Нормально такие вещи бегают на nodeJS, правда и на пхп много есть реализаций - самая популярная phpDaemon http://daemon.io/
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Re: Автоматическое уведомление
Какие либо полуфабрикаты быстро стыкующиеся с Yii есть?) Очень не хочется изобретать свои велосипеды. phpDaemon уже читаю, спасибо
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
Даже гугл не стремается слать периодические AJAX запросы. =) Чтобы вывести единственное уведомление о новом событии, разворачивать отдельный сервак имхо нет смысла.
Re: Автоматическое уведомление
Этих уведомлений будет ну очень много) Причем сам сервер должен отслеживать события и передавать инфу на клиент о том что ему делать дальше) Если спрашивать будет например раз в 30 секунд сам клиент - то это потеря времени, хоть и не очень большая, но в количественном смысле - ощутимая
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
Re: Автоматическое уведомление
Ну ты же пользователю не вывалишь ну очень много диалоговых окон с текстом уведомления. У тебя скорее всего будет какая-то иконка, со счетчиком количества накопившихся не прочтенных уведомлений? Или у тебя на странице 50 таких иконок будет? Ты не понял, о чем я писал. Отправляешь запрос, он возвращает ответ хоть с 10 уведомлениями, хоть со 100.ApJIeKuHo писал(а):Этих уведомлений будет ну очень много)
Wialon, шлет раз в секунду запросы и возвращает данные с трекеров в реальном времени. Канал не сильно напрягается от этого.
Последний раз редактировалось SiZE 2013.12.18, 21:34, всего редактировалось 1 раз.
Re: Автоматическое уведомление
А что если у ТС обычный хостинг за 100 рублей? Как это все разворачивать?anton44eg писал(а):посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
Re: Автоматическое уведомление
у ТС физическая железка на которой при желании можно развернуть что угодно а если ее будет мало то вполне можно организовать еще одну под конкретную задачу)
Естественно будет одна иконка с количеством) Но это вы меня не поняли) Допустим каждые 30 секунд иконка будет обновляться) Так вот, если допустим человек эту иконку после завершения свой работы получил не сразу, а допустим через секунд 20 - то значит 20 секунд он простаивал, а это потеря уже не только времени но и денег)SiZE писал(а):Ну ты же пользователю не вывалишь ну очень много диалоговых окон с текстом уведомления. У тебя скорее всего будет какая-то иконка, со счетчиком количества накопившихся не прочтенных уведомлений? Или у тебя на странице 50 таких иконок будет? Ты не понял, о чем я писал. Отправляешь запрос, он возвращает ответ хоть с 10 уведомлениями, хоть со 100.ApJIeKuHo писал(а):Этих уведомлений будет ну очень много)
Wialon, шлет раз в секунду запросы и возвращает данные с трекеров в реальном времени. Канал не сильно напрягается от этого.
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
это уже его проблемы. а если у ТС не стоит PHP?SiZE писал(а):А что если у ТС обычный хостинг за 100 рублей? Как это все разворачивать?anton44eg писал(а):посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
Re: Автоматическое уведомление
Я делал с помощью ajax такую задачу, показывал сплывающее окно как в вк, если ответ от сервера положительный, у меня каждые 3 секунды запрос улетал, нормально работало, не знаю как при большой кучи народа, у меня только 25 человек работало, но проблем и зависаний ни каких не было. Был рассмотрен вариант с кроном, но я его сразу отмел, не помню сейчас по чему, но что то меня там смутило.
Re: Автоматическое уведомление
Хотя может автору нужно показывать граффик с котировками ценных бумаг, то тогда думаю с ajax может и будет проблема, и время там критично
ну в общем я так понимаю интервал может быть и 1 секунда, только нужно чтоб интервал не был меньше чем обработка запроса, на форуме был пост где вопрос был про параллельную обработку данных, вроде что то решилось
ну в общем я так понимаю интервал может быть и 1 секунда, только нужно чтоб интервал не был меньше чем обработка запроса, на форуме был пост где вопрос был про параллельную обработку данных, вроде что то решилось
Re: Автоматическое уведомление
ты не утрируй. РНР + MySQL стандартный набор для обычного хостинга. А чтобы node.js запустить это минимум VPS покупать надо, самому поднимать никсы и все разворачивать.anton44eg писал(а):а если у ТС не стоит PHP?
P.S. Многие шабашки не подразумевают таких расходов.
Re: Автоматическое уведомление
У ТС нет проблем ни с железом ни с настройкой чего либо. Нет проблем даже с тем что делать. Проблема только в том КАК делать.
Вот про как - я и думаю.
P.S. я конечно могу обращаться каждую секунду к серверу, думаю это будет не очень критичное время, но вот самих обращений будет достаточно много как для меня. Возможно около 10к+ запросов. Не знаю насколько это много по общепринятым меркам, но т.к. тестов на такую нагрузку я не делал(да и как делать тоже не особо представляю) то есть опасения в том что проблем не будет. А переписывать очень не хочется...
Вот про как - я и думаю.
P.S. я конечно могу обращаться каждую секунду к серверу, думаю это будет не очень критичное время, но вот самих обращений будет достаточно много как для меня. Возможно около 10к+ запросов. Не знаю насколько это много по общепринятым меркам, но т.к. тестов на такую нагрузку я не делал(да и как делать тоже не особо представляю) то есть опасения в том что проблем не будет. А переписывать очень не хочется...
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
Я что то не понял, что за 10 000 запросов? от кого к кому, за какое время? Почему ты опасаешься отсутствия проблем? Если все работает с первого раза значит ты что то сделал неправильно?ApJIeKuHo писал(а): я конечно могу обращаться каждую секунду к серверу, думаю это будет не очень критичное время, но вот самих обращений будет достаточно много как для меня. Возможно около 10к+ запросов. Не знаю насколько это много по общепринятым меркам, но т.к. тестов на такую нагрузку я не делал(да и как делать тоже не особо представляю) то есть опасения в том что проблем не будет. А переписывать очень не хочется...
Re: Автоматическое уведомление
Мда.. понял что немного напутал в объяснении
Отсутствия проблем я не опасаюсь, я эти проблемы разрешаю если они есть, а потому уверен что даже если появятся - я их решу
Теперь по нагрузке - т.к. я с высоконагружаемыми проектами дел имел не очень много(ну да, мало опыта в данной области, со временем это обычно проходит), то и не могу представить насколько это много - около 10к различных обращений к серверу в течении секунды, хотя правильнее было бы дать около 5к+ обращений в секунду, но лучше перестраховаться думаю
P.S. да, я перепутал в топике выше обращения и запросы, виноват, исправлюсь
P.P.S. если честно сам не понял с какого перепуга я так предложение сформулировал, видимо 11 часов вечера после работы и учебы сказываются Постараюсь в будущем больше обращать внимания на текст который собираюсь отправить
Отсутствия проблем я не опасаюсь, я эти проблемы разрешаю если они есть, а потому уверен что даже если появятся - я их решу
Теперь по нагрузке - т.к. я с высоконагружаемыми проектами дел имел не очень много(ну да, мало опыта в данной области, со временем это обычно проходит), то и не могу представить насколько это много - около 10к различных обращений к серверу в течении секунды, хотя правильнее было бы дать около 5к+ обращений в секунду, но лучше перестраховаться думаю
P.S. да, я перепутал в топике выше обращения и запросы, виноват, исправлюсь
P.P.S. если честно сам не понял с какого перепуга я так предложение сформулировал, видимо 11 часов вечера после работы и учебы сказываются Постараюсь в будущем больше обращать внимания на текст который собираюсь отправить
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
Каждый пользователь оставаясь на сайте и не перегружая страницу, будет совершать 1 AJAX запрос в секунду. Получается у тебя одновременно с утра до ночи будет 5 000 уникальных пользователей? Мы пока не рассматриваем тех кто открыл две, три страницы
Re: Автоматическое уведомление
Кто говорит про уникальных пользователей? Разве не все равно уникальные пользователи обращаются к системе или не уникальные?
А вот я как раз рассматриваю, именно тех кто открыл 2-3 а точнее вполне может даже 7-20 страниц. Пользователей 500-800 на сайте очень даже может быть. Пусть не постоянно но в рабочее время - вполне. Информация на сайте для работы нужна, эту информацию мониторить нужно, так что уведомления будут нужны. Хотя вообще - я хочу те же 7-20 запросов обернуть в 1 обращение, тогда будет лишь 1 обращение а не 7-20 как планируется сейчас. Но для этого необходимо сделать систему для отслеживания выбранных.. ну пусть будет товаров. А т.к. как обычно нужно побыстрее - вот и приходится извращаться Так что система для отслеживания выбранных "товаров" тоже появится, но уже чуть позже.
А вот я как раз рассматриваю, именно тех кто открыл 2-3 а точнее вполне может даже 7-20 страниц. Пользователей 500-800 на сайте очень даже может быть. Пусть не постоянно но в рабочее время - вполне. Информация на сайте для работы нужна, эту информацию мониторить нужно, так что уведомления будут нужны. Хотя вообще - я хочу те же 7-20 запросов обернуть в 1 обращение, тогда будет лишь 1 обращение а не 7-20 как планируется сейчас. Но для этого необходимо сделать систему для отслеживания выбранных.. ну пусть будет товаров. А т.к. как обычно нужно побыстрее - вот и приходится извращаться Так что система для отслеживания выбранных "товаров" тоже появится, но уже чуть позже.
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]
Re: Автоматическое уведомление
Вот прям для тебя http://davidwalsh.name/page-visibility
http://www.w3.org/TR/2011/WD-page-visibility-20110602/
Получай все необходимые данные одним запросом. Частота в 1 секунду реально нужна только для отслеживания трека и в игрушках. =) Для твоих задач и 5 секунд помоему за глаза. Тем более если ты говоришь будет много информации, явно человек за 5 секунд не успеет обработать то что пришло.
и еще https://developers.google.com/chrome/wh ... visibilitySo what could visibilitychange be used for? You could stop periodically refreshing content when the page is no longer visible...
http://www.w3.org/TR/2011/WD-page-visibility-20110602/
Получай все необходимые данные одним запросом. Частота в 1 секунду реально нужна только для отслеживания трека и в игрушках. =) Для твоих задач и 5 секунд помоему за глаза. Тем более если ты говоришь будет много информации, явно человек за 5 секунд не успеет обработать то что пришло.
Re: Автоматическое уведомление
Хм... вариант буду смотреть что скинули, спасибо *ушел читать доки*
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
P.S.: Yii Jabber Conference: [email protected]