Форум

Открыть Ответить

Чат в реальном времени

имхо нагрузка возрастет на сервер =/


Ну а как Вы хотели по другому выводить он-лан сообщения для пользователей? - только отслеживать, больше ни как...

GRAFLEKX
  • Группа: Супермодераторы
  • Пункты: 1595
  • Регистрация: 18.09.2008
  • Пол: Мужчина
  • Из: Россия
GRAFLEKX
3.92

3.92

29.11.2010 16:30:55 29.11.2010 16:31:02

в идеале так: Я из админки пишу юзеру сообщение. при нажатии Отправить записывается само сообщение и айпи юзера, при этом при моем клике на кнопку сработал вызов ajax-функции Load(), которая делает запрос в БД ...WHERE ip='$айпи_юзера', и выводит в div сообщение юзеру)) так реализован чат на jquery...

в двух словах, кто-то послал сообщение, и тут же у всех оно высветилось, т.к. тот кто послал, спровоцировал у всех вызов функции Load(), (а я думаю что можно сделать чтобы она вызывалось только для целевого юзера). и все) он увидил сообщение, а остальным пофиг)

ну как то так )))

Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

Да, но Вы не забывайте, что тот же, упомянутый Вами чат, делает периодические запросы в БД чтобы проверить поступило ли сообщение или нет. Тоесть теоритически он незаметно для юзера обновляет страницу - делает тоже самое, что я написал выше...

GRAFLEKX
  • Группа: Супермодераторы
  • Пункты: 1595
  • Регистрация: 18.09.2008
  • Пол: Мужчина
  • Из: Россия
GRAFLEKX
3.92

3.92

да, вы правы) ну в таком случае с чатом я более-менее разобрался,- тут только один вариант = автообновление блока, который проверяет, не поступило ли сообщений для данного посетителя...

Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

Есть только одна проблема.. ))

Как мне включить поддержку звуковых уведомлений? Вообще не представляю как это можно сделать =/

Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br /> var MSIE=navigator.userAgent.indexOf(&quot;MSIE&quot;);<br /> var NETS=navigator.userAgent.indexOf(&quot;Netscape&quot;);<br /> var OPER=navigator.userAgent.indexOf(&quot;Opera&quot;);<br /> if((MSIE&gt;-1) || (OPER&gt;-1)) {<br /> document.write(&quot;&lt;BGSOUND SRC=sound.mid LOOP=INFINITE&gt;&quot;);<br /> } else {<br /> document.write(&quot;&lt;EMBED SRC=sound.mid AUTOSTART=TRUE &quot;);<br /> document.write(&quot;HIDDEN=true VOLUME=100 LOOP=TRUE&gt;&quot;);<br /> }<br /> &lt;/SCRIPT&gt;


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

GRAFLEKX
  • Группа: Супермодераторы
  • Пункты: 1595
  • Регистрация: 18.09.2008
  • Пол: Мужчина
  • Из: Россия
GRAFLEKX
3.92

3.92

сделать включение отключение самим пользователем

ra55551
  • Группа: Клиент
  • Пункты: 2121
  • Регистрация: 02.11.2008
  • Пол: Мужчина
  • Из: Пермь
ra55551
3.74

3.74

сделать включение отключение самим пользователем


А толку то? Юзер все равно уже оглохнет Смайл - 06

GRAFLEKX
  • Группа: Супермодераторы
  • Пункты: 1595
  • Регистрация: 18.09.2008
  • Пол: Мужчина
  • Из: Россия
GRAFLEKX
3.92

3.92

01.12.2010 21:18:06 01.12.2010 21:36:55

GRAFLEKX, ra55551, не переживайте, звуковые уведомления я изначально собирался реализовать только для администратора.
Реализовал так (немного через ЖП, но всё работает):
Никакие js не применял. у меня ДИВ, в котором через аякс каждые 3 секунды обновляется контент (делается запрос в бд, проверяет нет ли alert='1' - если есть, выведет на экран под лейблом "Новое сообщение");
Добавил тег embed со ссылкой на звуковой файл, а в базу данных после поля alert добавил еще одно поле, - hotmessage, который как и alert приобретает значение 1 в момент нажатия пользователем кнопки "ОТПРАВИТЬ". Одна проблема: После отправки сообщения, звук всё время повторялся... чтобы он играл только один раз, сделал так: :)))))


if($hot == "1") { 
echo "<embed src=\"pathtosound/newmessage.wav\" hidden=\"true\" autostart=\"true\" loop=\"1\" />";
$db->sql_query("update chat set hot='0'");
}


Т.к. обновление каждые 3 секунды, скрипт выведет этот embed, звук успеет проиграться всего один раз, прежде чем div обновится, и embed уберется + выполнится запрос, чтобы он больше не появлялся))) и не появится, пока hot снова не станет равен единице..
____

такая далее проблема... история переписки не грузится из бд, если хотя бы одно сообщение содержит слэши, кавычки и тп... как лечится? =/

Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

На сколько я помню, EMBED не воспроизводится в IE и Opera, там надо использовать еще и BGSOUND в зависимости от браузера, может я ошибаюсь...

Кавычки, спец. символы и т.д. надо переводить в html сущности еще до записи в базу, тогда проблем не будет при выводе.

Слеши вообще вырезать надо и не пускать в базу - вас взломают с таким раскладом.
Вообще любые спец. символы и слеши тем более, должны жестко фильтроваться перед записью в БД, иначе это чревато последствиями...

GRAFLEKX
  • Группа: Супермодераторы
  • Пункты: 1595
  • Регистрация: 18.09.2008
  • Пол: Мужчина
  • Из: Россия
GRAFLEKX
3.92

3.92

Всего: 39 на 4 страницах по 10 на каждой странице

1 2 3 4
Открыть Ответить

Хотите опробовать SLAED CMS в действии?

Идеи и предложения
Обратная связь