Автоматическое уведомление

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Автоматическое уведомление

Сообщение ApJIeKuHo »

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

Например:
Пользователь1 отправить Пользвателю2 личное сообщение.
Пользователь2 в это время находится на сайте но страницы не перезагружает(допустим эта страница с текстом и этого текста там много... минут на 30 чтения), при этом сообщение от Пользователя1 наш Пользователь2 должен увидеть как можно скорее. Вариант с почтой не подходит. Я знаю что такое можно сделать, но как - пока не очень представляю. Точнее представляю но считаю это немного неправильным. Есть у кого какие идеи как это правильно делать?
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Автоматическое уведомление

Сообщение flashimage »

Это называется server push. Малой кровью реализуется с помощью периодического ajax запроса для проверки. А если уже правильно, то надо смотреть в сторону long polling, websockets... Нормально такие вещи бегают на nodeJS, правда и на пхп много есть реализаций - самая популярная phpDaemon http://daemon.io/
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

Какие либо полуфабрикаты быстро стыкующиеся с Yii есть?) Очень не хочется изобретать свои велосипеды. phpDaemon уже читаю, спасибо :)
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

Даже гугл не стремается слать периодические AJAX запросы. =) Чтобы вывести единственное уведомление о новом событии, разворачивать отдельный сервак имхо нет смысла.
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

Этих уведомлений будет ну очень много) Причем сам сервер должен отслеживать события и передавать инфу на клиент о том что ему делать дальше) Если спрашивать будет например раз в 30 секунд сам клиент - то это потеря времени, хоть и не очень большая, но в количественном смысле - ощутимая :(
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Автоматическое уведомление

Сообщение anton44eg »

посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

ApJIeKuHo писал(а):Этих уведомлений будет ну очень много)
Ну ты же пользователю не вывалишь ну очень много диалоговых окон с текстом уведомления. У тебя скорее всего будет какая-то иконка, со счетчиком количества накопившихся не прочтенных уведомлений? Или у тебя на странице 50 таких иконок будет? Ты не понял, о чем я писал. Отправляешь запрос, он возвращает ответ хоть с 10 уведомлениями, хоть со 100.

Wialon, шлет раз в секунду запросы и возвращает данные с трекеров в реальном времени. Канал не сильно напрягается от этого.
Последний раз редактировалось SiZE 2013.12.18, 21:34, всего редактировалось 1 раз.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

anton44eg писал(а):посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
А что если у ТС обычный хостинг за 100 рублей? Как это все разворачивать?
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

у ТС физическая железка на которой при желании можно развернуть что угодно :) а если ее будет мало то вполне можно организовать еще одну под конкретную задачу)
SiZE писал(а):
ApJIeKuHo писал(а):Этих уведомлений будет ну очень много)
Ну ты же пользователю не вывалишь ну очень много диалоговых окон с текстом уведомления. У тебя скорее всего будет какая-то иконка, со счетчиком количества накопившихся не прочтенных уведомлений? Или у тебя на странице 50 таких иконок будет? Ты не понял, о чем я писал. Отправляешь запрос, он возвращает ответ хоть с 10 уведомлениями, хоть со 100.

Wialon, шлет раз в секунду запросы и возвращает данные с трекеров в реальном времени. Канал не сильно напрягается от этого.
Естественно будет одна иконка с количеством) Но это вы меня не поняли) Допустим каждые 30 секунд иконка будет обновляться) Так вот, если допустим человек эту иконку после завершения свой работы получил не сразу, а допустим через секунд 20 - то значит 20 секунд он простаивал, а это потеря уже не только времени но и денег)
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Автоматическое уведомление

Сообщение anton44eg »

SiZE писал(а):
anton44eg писал(а):посмотрите на вебсокеты. есть удобные проекты - sockjs, socket.io
А что если у ТС обычный хостинг за 100 рублей? Как это все разворачивать?
это уже его проблемы. а если у ТС не стоит PHP?
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

Re: Автоматическое уведомление

Сообщение Barssoft »

Я делал с помощью ajax такую задачу, показывал сплывающее окно как в вк, если ответ от сервера положительный, у меня каждые 3 секунды запрос улетал, нормально работало, не знаю как при большой кучи народа, у меня только 25 человек работало, но проблем и зависаний ни каких не было. Был рассмотрен вариант с кроном, но я его сразу отмел, не помню сейчас по чему, но что то меня там смутило.
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

Re: Автоматическое уведомление

Сообщение Barssoft »

Хотя может автору нужно показывать граффик с котировками ценных бумаг, то тогда думаю с ajax может и будет проблема, и время там критично

ну в общем я так понимаю интервал может быть и 1 секунда, только нужно чтоб интервал не был меньше чем обработка запроса, на форуме был пост где вопрос был про параллельную обработку данных, вроде что то решилось
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

anton44eg писал(а):а если у ТС не стоит PHP?
ты не утрируй. РНР + MySQL стандартный набор для обычного хостинга. А чтобы node.js запустить это минимум VPS покупать надо, самому поднимать никсы и все разворачивать.

P.S. Многие шабашки не подразумевают таких расходов.
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

У ТС нет проблем ни с железом ни с настройкой чего либо. Нет проблем даже с тем что делать. Проблема только в том КАК делать.
Вот про как - я и думаю.
P.S. я конечно могу обращаться каждую секунду к серверу, думаю это будет не очень критичное время, но вот самих обращений будет достаточно много как для меня. Возможно около 10к+ запросов. Не знаю насколько это много по общепринятым меркам, но т.к. тестов на такую нагрузку я не делал(да и как делать тоже не особо представляю) то есть опасения в том что проблем не будет. А переписывать очень не хочется...
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

ApJIeKuHo писал(а): я конечно могу обращаться каждую секунду к серверу, думаю это будет не очень критичное время, но вот самих обращений будет достаточно много как для меня. Возможно около 10к+ запросов. Не знаю насколько это много по общепринятым меркам, но т.к. тестов на такую нагрузку я не делал(да и как делать тоже не особо представляю) то есть опасения в том что проблем не будет. А переписывать очень не хочется...
Я что то не понял, что за 10 000 запросов? от кого к кому, за какое время? Почему ты опасаешься отсутствия проблем? Если все работает с первого раза значит ты что то сделал неправильно? :lol:
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

Мда.. понял что немного напутал в объяснении :)
Отсутствия проблем я не опасаюсь, я эти проблемы разрешаю если они есть, а потому уверен что даже если появятся - я их решу :)
Теперь по нагрузке - т.к. я с высоконагружаемыми проектами дел имел не очень много(ну да, мало опыта в данной области, со временем это обычно проходит), то и не могу представить насколько это много - около 10к различных обращений к серверу в течении секунды, хотя правильнее было бы дать около 5к+ обращений в секунду, но лучше перестраховаться думаю :)
P.S. да, я перепутал в топике выше обращения и запросы, виноват, исправлюсь :)
P.P.S. если честно сам не понял с какого перепуга я так предложение сформулировал, видимо 11 часов вечера после работы и учебы сказываются :) Постараюсь в будущем больше обращать внимания на текст который собираюсь отправить :)
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

Каждый пользователь оставаясь на сайте и не перегружая страницу, будет совершать 1 AJAX запрос в секунду. Получается у тебя одновременно с утра до ночи будет 5 000 уникальных пользователей? Мы пока не рассматриваем тех кто открыл две, три страницы
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

Кто говорит про уникальных пользователей? Разве не все равно уникальные пользователи обращаются к системе или не уникальные?
А вот я как раз рассматриваю, именно тех кто открыл 2-3 а точнее вполне может даже 7-20 страниц. Пользователей 500-800 на сайте очень даже может быть. Пусть не постоянно но в рабочее время - вполне. Информация на сайте для работы нужна, эту информацию мониторить нужно, так что уведомления будут нужны. Хотя вообще - я хочу те же 7-20 запросов обернуть в 1 обращение, тогда будет лишь 1 обращение а не 7-20 как планируется сейчас. Но для этого необходимо сделать систему для отслеживания выбранных.. ну пусть будет товаров. А т.к. как обычно нужно побыстрее - вот и приходится извращаться :) Так что система для отслеживания выбранных "товаров" тоже появится, но уже чуть позже.
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Автоматическое уведомление

Сообщение SiZE »

Вот прям для тебя http://davidwalsh.name/page-visibility
So what could visibilitychange be used for? You could stop periodically refreshing content when the page is no longer visible...
и еще https://developers.google.com/chrome/wh ... visibility
http://www.w3.org/TR/2011/WD-page-visibility-20110602/

Получай все необходимые данные одним запросом. Частота в 1 секунду реально нужна только для отслеживания трека и в игрушках. =) Для твоих задач и 5 секунд помоему за глаза. Тем более если ты говоришь будет много информации, явно человек за 5 секунд не успеет обработать то что пришло.
ApJIeKuHo
Сообщения: 191
Зарегистрирован: 2011.09.28, 11:21

Re: Автоматическое уведомление

Сообщение ApJIeKuHo »

Хм... вариант :) буду смотреть что скинули, спасибо *ушел читать доки*
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: [email protected]
Ответить