Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как организовать непрерывное соединение с сервером?
 
 автор: Blizard   (19.07.2007 в 14:24)   письмо автору
 
 

скажите, как организовать непрерывное соединение с сервером?
(для чата)

   
 
 автор: bronenos   (19.07.2007 в 15:19)   письмо автору
 
   для: Blizard   (19.07.2007 в 14:24)
 

знаю тока шо можно запрашивать данные каждые N секунд

   
 
 автор: Blizard   (19.07.2007 в 16:43)   письмо автору
 
   для: bronenos   (19.07.2007 в 15:19)
 

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

   
 
 автор: Trianon   (19.07.2007 в 18:10)   письмо автору
 
   для: Blizard   (19.07.2007 в 16:43)
 

http://irc.tm-net.ru/files/rfc1459-rus.html

   
 
 автор: Blizard   (19.07.2007 в 21:42)   письмо автору
 
   для: Trianon   (19.07.2007 в 18:10)
 

Trianon! Огромное спасибо за ссылку, с удовольствием почитаю =)

   
 
 автор: bronenos   (19.07.2007 в 22:08)   письмо автору
 
   для: Trianon   (19.07.2007 в 18:10)
 

встречный вопрос
непрерывный коннект это просто цикл без конца
так вот вопрос
а не сильно ли грузит сервер сотня работающих копий скрипта?

   
 
 автор: Blizard   (19.07.2007 в 22:15)   письмо автору
 
   для: bronenos   (19.07.2007 в 22:08)
 

кстате для примера вот чат на непрерывном движке http://www.august4u.ru/ или http://www.mpchat.ru/

   
 
 автор: Trianon   (19.07.2007 в 23:01)   письмо автору
 
   для: bronenos   (19.07.2007 в 22:08)
 

>встречный вопрос
>непрерывный коннект это просто цикл без конца

это нет так

>так вот вопрос
>а не сильно ли грузит сервер сотня работающих копий скрипта?

работать можно по-разному.


IRC вообще обычно не на php реализуется.

   
 
 автор: testdriver   (20.07.2007 в 16:24)   письмо автору
 
   для: Trianon   (19.07.2007 в 23:01)
 

Непрерывное соединения в чатах обычно используется для загрузки главного окна без постоянного его обновления.
Можно реализовать бесконечным циклом вот такого вида:

<?PHP
set_time_limit
(0); //устанавливаем бесконечное время исполнения
function send_chat() {
//тут одному вам известным методом получаем сообщение на вывод
  
return "Полученное сообщение";
}
while(
1) {
  
//тут получаем с помощью самописной функции сообщение которое нужно вывести на экран
  
$result send_chat();
  echo 
$result."<br>"//выводим результат на экран
  
flush(); //очищаем буфер
  
sleep(1); //задержка
}
?>

Однако замечу, что работает данный вариант не всегда и не везде, зависит от настройки PHP, так как частенько возникают проблемы с функцией flush(); иногда приходиться экспериментировать

   
 
 автор: bronenos   (20.07.2007 в 18:30)   письмо автору
 
   для: Trianon   (19.07.2007 в 23:01)
 

>>встречный вопрос
>>непрерывный коннект это просто цикл без конца 
>
>это нет так

хм? sleep + flush + while(true) - разве нет?

   
 
 автор: Trianon   (20.07.2007 в 20:13)   письмо автору
 
   для: bronenos   (20.07.2007 в 18:30)
 

посмотрите функции stream_socket_accept() и socket_select()

   
 
 автор: bronenos   (20.07.2007 в 20:15)   письмо автору
 
   для: Trianon   (20.07.2007 в 20:13)
 

это вы мне или кому?

   
 
 автор: Trianon   (20.07.2007 в 20:17)   письмо автору
 
   для: bronenos   (20.07.2007 в 20:15)
 

Вам. В ответ на Ваш вопрос.

   
 
 автор: bronenos   (20.07.2007 в 20:36)   письмо автору
 
   для: Trianon   (20.07.2007 в 20:17)
 

Вы меня конечно извините, но при чем тут сокеты?
<?php
while (true)
{
  print 
"<script> alert ('Текущее время: '".date('H:i:s')."'); </script>";
  
flush();
  
sleep (3);
}
?>

вот же примерный план...

   
 
 автор: Trianon   (20.07.2007 в 23:45)   письмо автору
 
   для: bronenos   (20.07.2007 в 20:36)
 

протокол http - вообще не для непрерывного коннекта.

   
 
 автор: bronenos   (20.07.2007 в 23:47)   письмо автору
 
   для: Trianon   (20.07.2007 в 23:45)
 

хм

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования