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

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

0

0

1
26.11.2010 16:23:17 26.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
Сервер Сервер в интернете
Goshan
Goshan
3.92

3.92

2
26.11.2010 16:46:04

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


[Koshey-Developer](https://kosheydemo.info/)

ZOMBiE
ZOMBiE
4.05

4.05

3
26.11.2010 17:01:02

только тому пользователю, какому нужно))))

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

Goshan
Goshan
3.92

3.92

ra55551
ra55551
3.75

3.75

5
26.11.2010 18:35:37 27.11.2010 00:18:41

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

Goshan
Goshan
3.92

3.92

6
27.11.2010 10:16:06

ну так найди скрипт js который выдает данные без перезагрузки страниц и все... делов то

panic
panic
3.38

3.38

7
27.11.2010 10:55:00 27.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 без перезагрузки страницы...
Все тоже самое можно сделать на ДЖквери или любом другом Аякс скрипте, только логика и код будет другой, я просто дал примера...

GRAFLEKX
GRAFLEKX
3.92

3.92

8
27.11.2010 11:35:04

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

ra55551
ra55551
3.75

3.75

9
27.11.2010 11:52:00

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

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

GRAFLEKX
GRAFLEKX
3.92

3.92

10
28.11.2010 20:20:42 28.11.2010 20:30:37

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

Goshan
Goshan
3.92

3.92

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр