Чтение RSS каналов

Форум

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

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

0

0
1
26.11.2010 16:23:1726.11.2010 16:24:42
Привет )))

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

Как примерно реализовать такое на php и js? В частности, интересует вопрос, как можно при "отправке" сообщения кому-либо (здесь происходит запись в бд с параметром WHERE ip='$userip'), показать ему без перезагрузки страницы, что ему пришло сообщение? (Собственно само окно чата я примерно представляю как реализовать)

Вариант такой - делать запрос js-функцией ajax('index.php?module=......') через например каждые 10 сек, но мне кажется это не лучший способ.


Версия системы: SLAED CMS 2.6 Lite
Версия PHP: PHP 4
Сервер: Сервер в интернете
3.92

3.92
2
26.11.2010 16:46:04
не сложно, вопрос в другом ...
сообщение отправлять только пользователям или всем кто на сайте ?
4.05

4.05
3
26.11.2010 17:01:02
только тому пользователю, какому нужно))))

Это называется "Онлайн-консультант", вспомнил.
3.92

3.92
3.75

3.75
5
26.11.2010 18:35:3727.11.2010 00:18:41
Написал я себе онлайн-консультативню, только один вопрос: Когда администратор отправляет сообщение (записывается в бд - insert into ... where alert='1'), нужно, чтобы пользователь тут же был уведомлен о новом сообщении, то есть нужно тогда, когда alert=1, вывести на экран юзера, например, div какой-нибудь. - как сделать это при перезагрузке страницы, я себе отчетливо представляю, но если без перезагрузки? может как-нибудь jquery подключить? =/
3.92

3.92
6
27.11.2010 10:16:06
ну так найди скрипт js который выдает данные без перезагрузки страниц и все... делов то
3.63

3.63
7
27.11.2010 10:55:0027.11.2010 12:00:48
Вводим в том месте где должно быть сообщение такой код:
echo "<div id=\"message\"></div>"
."<script src=\"prototype.js\" type=\"text/javascript\"></script>"
."<script type=\"text/javascript\" charset=\"windows-1251\">setInterval(function(){new Ajax.Updater('message', 'message.php')}, $time_pause);</script>";


По переменным:

echo "<div id=\"message\"></div>"

DIV куда выводим сообщение юзеру, является пустым и скрыт по умолчанию...

."<script src=\"prototype.js\" type=\"text/javascript\"></script>"

Подключаем скрипт prototype...

."<script type=\"text/javascript\" charset=\"windows-1251\">setInterval(function(){new Ajax.Updater('message', 'message.php')}, $time_pause);</script>";

Вводим нужные параметры запросов, где:
1. charset=\"windows-1251\" - кодировка Вашего сайта
2. setInterval - интервал опроса сервера в миллисекундах, задается переменной $time_pause...
3. message - id нашего div тега...
4. message.php - непосредственно скрипт который делает запрос в БД и обрабатывает данные о выводе сообщения(вместо скрипта можно вставить функцию из скрипта)...

Скрипт message.php:

делаем запрос в бд
IF (запрос в бд==выполнен){
Header("Content-Type: text/html; charset=windows-1251");
echo "<table><tr><td>Сообщение для пользователя</td></tr></table>";
}


В итоге: при работе скрипта, пока юзер находится на странице, через определенный интервал времени ($time_pause) делается опрос нужного скрипта, и если в скрипте появляется переменная которую можно вывести на экран, то её содержимое выводится в теге DIV без перезагрузки страницы...
Все тоже самое можно сделать на ДЖквери или любом другом Аякс скрипте, только логика и код будет другой, я просто дал примера...
3.97

3.97
8
27.11.2010 11:35:04
А на родном ажаксе слаеда такое нельзя реализовать ?
3.75

3.75
9
27.11.2010 11:52:00

А на родном ажаксе слаеда такое нельзя реализовать ?


Да фиг его знает, скорее всего нет, нужно смотреть возможности родного аякса в Slaed.
Я просто выкидываю все js из системы и все переделываю на полноценный jQuery, так как в Slaed сильно урезанные версии.
3.97

3.97
10
28.11.2010 20:20:4228.11.2010 20:30:37
спасибо. но есть одно но... это получается, что через каждые 5-10-100 ... секунд будут производиться запросы для КАЖДОГО находящегося на сайте пользователя... хм, имхо нагрузка возрастет на сервер =/
3.92

3.92
Открыть Ответить
естьперезагрузкивременипримерновопроспараметромокностраницытакойинтересуетреальномлучшийреализоватьquotсообщение
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь