ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [apache-talk]=?KOI8-R?Q?_=D0p=C1=D7=C9=CC=D8=CE=CF=C5?= =?KOI8-R?Q?_=CE=C1=D0=C9=D3=C1=CE=C9=C5?= =?KOI8-R?Q?_=DE=C1=D4=CF=D7?=



Hi!

On 15-Oct-99 Alex Tutubalin wrote:

> Вот тут мной пишется очеpедная поделка - www-chat (пожалуй, из массовых вещей
> я только баннеpный обмен еще не писал :)

У меня чат уже давно радотает на php3 написанный.
И самое геморройное - это проверка полей. То есть любая фича обходится в
неприятно большое кол-во проверок. 
Второе - это авторизация. Я пользую пхпшную, а пароли из хэша беру.
Очень неприятный момент - это список живых усеров. Тормозит... Вот я подумываю
как бы это быстро получать... Пока я перечитываю хэш и проверяю время :-(
 
> Возникает вопpос - как пpавильно обновлять содеpжимое окон клиентских 
> бpоузеpов?

meta refresh. Только. :-(
 
> Есть подозpение, что meta refresh может дать кpайне непpиятные волны нагpузки
> за счет авто-синхpонизации всего хозяйства (если случайно получится так, что 
> pавномеpная нагpузка вдpуг пеpестанет быть таковой, то она сама может начать 
> собиpаться в волны). Что делать ? meta refresh with random delay ?

Угу. Я усеров спрашиваю время рефреша - они сами выбирают кому как удобнее.

> p.s. Планиpуемая нагpузка - большая, железо слабое, канал быстpый :)

Паямть... надо много.

Я начинаю замечать чат когда пишущих усеров становится больше 25-30. Правда у
меня сервер провайдера и на этом же компе сидат усервские сервера/страницы...

Да, написал тут быстрый tail() на php - родного там нет ;-) Им и пользуюсь:

<?
  // То же что и tail
  // возвращает массив строк без \n
  // можно оерделить глобальные переменные tail_start_buf и tail_record_lenght
  // под свои нужды... ;-)

  function tail($file,$num) {
    global $tail_start_buf;
    global $tail_record_lenght;
    if ($tail_start_buf==0) $tail_start_buf=80;
    if ($tail_record_lenght==0) $tail_record_lenght=4096;
    $appxlen=$tail_start_buf;// Примерная длина строки
    $flen=filesize($file);   // Длина файла
    $out=array();            // То что вернется
    $fp=@fopen($file,'r');
    if ($fp) {
      // Откуда читать?
      do {
        if ($num*$appxlen>$flen) $pos=0;
        else $pos=$flen-($num*$appxlen);
        $out=_readfile($fp,$pos,$num);
        $appxlen*=2;
      } while (count($out)!=$num && $pos!=0);
      // Все.
      fclose($fp);
    }
    return $out;
  }
  // Локальная функция...
  function _readfile($fp,$pos,$num) {
    global $tail_record_lenght;
    fseek($fp,$pos);
    $tmp=array();
    for ($i=0; !feof($fp); $i++) {
      $line=chop(fgets($fp,$tail_record_lenght));
      if (!$line) break;
      $tmp[$i]=$line;
    }
    $j=count($tmp)-$num;
    if ($pos!=0 && $j==0) {
      $j++;
    }
    if ($j<0) {
      $j=0;
      $xnum=$num-1;
    } else $xnum=$num;
    for ($i=0; $i<$xnum && $j<count($tmp); $i++,$j++) $out[$i]=$tmp[$j];
    return $out;
  }
?>

Есть предложения по улучшению?

SKiller
--------------------------
Sergei Keler
WebMaster of "ComSet"
E-Mail: skiller@comset.net
http://www.comset.net
--------------------------
=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.