PDA

Просмотр полной версии : Как уведомить юзера о событии?


Astraport
11.04.2011, 09:28
Например имеется заинтересованный юзер, который ждет сообщения от другого юзера, например провести чат. Естественно, рефрешить страницу - это не правильно. Предполагается, что первый юзер не будет закрывать страницу браузера, но может открывать другие страницы или другие программы.
Можно ли как-то уведомить его о том, что другой юзер хочет с ним общаться?

Добавлено через 26 минут
Желательно чтобы это было какое-нибудь всплывающее окно поверх всех окон браузера.
Мне даже не очень понятно как звуком оповестить из флэша, хотя и этого мало, т. к. эксперт может выключить звук. То есть как один юзер может послать другому сигнал, чтобы у него появилось сообщение и звук? JS, PHP, mySQL имеются. Псе пользователи имеют уникальные id.

GBee
11.04.2011, 10:42
Если не сокет, то флэшка должна с определенной периодичностью вызывать скрипт, который будет говорить, есть ли обновления.
Ну а дальше Sound и ExternalInterface.

хотя и этого мало, т. к. эксперт может выключить звук. А параноик выдернуть шнур и выдавить стекло, отключить джаваскрипты и флэш.

Astraport
11.04.2011, 10:51
Если не сокет, то флэшка должна с определенной периодичностью вызывать скрипт, который будет говорить, есть ли обновления.
Не сокет.
То есть я правильно понял.
1. Второй юзер выбирает первого (жмет на его аватару), вызывается скрипт, который пишет в базе данных у первого юзера id второго юзера.
2. Флэшка первого юзера каждые 5 секунд отправляет запрос на сервер проверяя не поменялся ли id в его базе данных, если да, то выводится сообщение с аватарой второго юзера и звучит сигнал.
3. После сеанса связи нужно очистить базу данных первого юзера и переходим опять в режим ожидания.

Если все верно, то как-то слишком ресурсоемко и не элегантно:) А нельзя ли p2p как-то использовать?
И не понятно как вызвать с помощью JS вызвать всплывающее окно над всеми окнами браузера?

GBee
11.04.2011, 10:57
То есть я правильно понял.
Да

Если все верно, то как-то слишком ресурсоемко и не элегантно А нельзя ли p2p как-то использовать? Хм. Как есть :о).

И не понятно как вызвать с помощью JS вызвать всплывающее окно над всеми окнами браузера? Тут я не помогу, ненависть к ДСу.

Astraport
11.04.2011, 14:50
Если кому тема интересна, то вот тут отличный нотификатор на HTML5
http://www.html5rocks.com/tutorials/notifications/quick/

Добавлено через 2 часа 33 минуты
Никто не пробовал пример выше по ссылке?
Никак не удается вывести окно как в примере, получается обычное диалоговое окно браузера, типа как alert.

Добавлено через 3 часа 0 минут
Делаю все по туториалу, но почему-то не получается:
1. Вешаю на кнопку слушатель как в примере document.querySelector('#show_button').addEventListener('click', function()....
Но он почему-то не срабатывает. Может быть для HTML5 нужны какие специальные тэги кроме <script>. В тоже время если в коде кнопки прямо вызвать функцию onclick то все нормально.
2. Нотификация у меня не срабатывает при значении: window.webkitNotifications.checkPermission() == 0, если меняю на 1, то все работает.
3. В любом случае, не получается вызвать нотификацию в виде HTML как в уроке, только в виде стандартного диалогового окна, что не нужно, нужно поверх всех программ как в уроке. Скопировал полностью код с HTML кода страницы - не работает.

Если у кого есть несколько минут, посмотрите этот простой и полезный урок.