Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

JSHttpRequest сделал чат ... беспокоит трафик ! (Oleg)
Author Message
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 9:39 am (написано за 7 минут 17 секунд)
   Post subject: JSHttpRequest сделал чат ... беспокоит трафик !
Reply with quote

День добрый всем !
Сделал чат с использованием библиотеки Дмитрия Котерова (благодарность за библиотеку) ...
в одном фрейме отправление данных ...
в другом по таймеру (1 сек.) запрос данных
серверный скрипт (для большей предметности) :
Code (php): скопировать код в буфер обмена
//------------------------------------                       
        $id_user = $_REQUEST['id'];
        $my_message=get_my_message($conn,$id_user);
        //
        $_RESULT = array (www.php.net/array)("new_msg"=> $my_message);
//------------------------------------
 
при этом трафик ~2кб независимо от того есть ли сообщения или нету ... есть ли какие-то пути его сокращения хотябы при отстутствии сообщений ?
Заранее Спасибо !
Back to top
View user's profile Send private message
VitaliyM
Участник форума



Joined: 19 Jul 2005
Posts: 283
Карма: 10
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 11:03 am (спустя 1 час 23 минуты; написано за 1 минуту 20 секунд)
   Post subject:
Reply with quote

Ну, как вариант - отправляйте Ваш массив, только если он изменился (то есть появились новые сообщения). Иначе отправляйте какой-нибудь флаг и не трогайте контент в окне.
Back to top
View user's profile Send private message Send e-mail
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 11:31 am (спустя 27 минут; написано за 2 минуты 26 секунд)
   Post subject:
Reply with quote

Привожу полный код серверного скрипта :
Code (php): скопировать код в буфер обмена
session_start (www.php.net/session_start)();
$conn = pg_connect (www.php.net/pg_connect)('dbname=portal host=127.0.0.1 user=postgres password=gkfwtynf')
        or  die (www.php.net/die)('Could not connect to PostgreSQL.');
pg_exec (www.php.net/pg_exec)($conn,        "SET DATESTYLE TO 'European'");       
// Подключаем библиотеку поддержки.
require_once "Php.php";
// Создаем главный объект библиотеки.
// Указываем кодировку страницы (обязательно!).
$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251");
$id_user = $_REQUEST['id'];
$my_message=get_my_message($conn,$id_user);
// Получаем запрос.
$_RESULT = array (www.php.net/array)("new_msg"     => $my_message);
Т.е. когда пустой массив я вообще ничего не отрпавляю в данных ...
но несущий каркас все-равно возварщается ... может есть вариант вообще ничего не возвращать каки-то
образом ... но не приведет ли это к зависанию клиентского процесса в состоянии вечного ожидания ?
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Mar 01, 2006 11:44 am (спустя 12 минут; написано за 1 минуту 24 секунды)
   Post subject:
Reply with quote

Oleg
Единственный здесь вариант экономить траффик - сделать таймер, по которому будет уменьшаться количество запросов, если пользователь отошел от компьютера, или свернул окно с чатом.
Back to top
View user's profile Send private message
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 11:52 am (спустя 8 минут; написано за 4 минуты 51 секунду)
   Post subject:
Reply with quote

Ясно ... спасибо за ответ ... просто делается не совсем чат ... он-лайн консультация и вся логика на PostgreSQL-е
висит, использование библиотеки как мостика просто замечательно ложится ...
Консультанты сидят в он-лайне весь день поэтому многовато выходит ...
Попробовал также реализацию с использованием streamed HTML трафик = 0 при отсутствии сообщений ... но сама технология очень
как-то нелепа чтоли ... подход дурацкий (а имеенно скритпы продожают крутится на сервере даже при отключении от него пока по
таймауту не отвалятся и то потому что fatal errore возникает)
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Mar 01, 2006 12:04 pm (спустя 11 минут; написано за 22 секунды)
   Post subject:
Reply with quote

Ну тогда оберните поток в ob_gzhandler.
Back to top
View user's profile Send private message
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 12:14 pm (спустя 9 минут; написано за 1 минуту 35 секунд)
   Post subject:
Reply with quote

Да :) естественно это сделано :) ~1кб/c
Просто жаль потосянно по кб отрпавлять ... :)
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Mar 01, 2006 12:17 pm (спустя 2 минуты; написано за 1 минуту 32 секунды)
   Post subject:
Reply with quote

Oleg
А не жаль тратить по 500-600 байт на несжимаемые заголовки?
За всё надо платить...

Кстати, достаточно 4-6 секунд для опроса сервера.
Back to top
View user's profile Send private message
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Wed Mar 01, 2006 12:22 pm (спустя 5 минут; написано за 1 минуту 25 секунд)
   Post subject:
Reply with quote

Чтож спасибо за участие :)
    думаю машина без бензина не ездит и не важно метр это или 10 км :)
Back to top
View user's profile Send private message
Oleg
Заглянувший



Joined: 01 Mar 2006
Posts: 7
Карма: 1
   поощрить/наказать


PostPosted: Fri Mar 03, 2006 7:34 am (спустя 1 день 19 часов 11 минут)
   Post subject:
Reply with quote

Вопрос решен, тему можно закрыть.
Back to top
View user's profile Send private message
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 131
   поощрить/наказать


PostPosted: Fri Mar 03, 2006 1:12 pm (спустя 5 часов 38 минут)
   Post subject:
Reply with quote


М

Тема закрыта.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML