LINUX.ORG.RU
ФорумAdmin

Арасhe2, socket, количество подключений


0

1

Доброй ночи, возник у меня небольшой затык, может быть поможете ? Модель: Работает apache2, он транслирует видео из motion

Пример файла использующего сокет для транслирования видео: /var/www/mjprox1.php

<?php
set_time_limit(0);
$fp = fsockopen ("127.0.0.1", 10101, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
    while ($str = trim(fgets($fp, 4096)))
       header($str);
    fpassthru($fp);
    fclose($fp);
}
?>

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

Подключаю все это дело к файлу index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-cache">
<body>
<img src="mjprox1.php" width="320" height="240">
<img src="mjprox2.php" width="320" height="240">
<img src="mjprox3.php" width="320" height="240">
<img src="mjprox4.php" width="320" height="240">
<img src="mjprox5.php" width="320" height="240">
<img src="mjprox6.php" width="320" height="240">
<img src="mjprox7.php" width="320" height="240">
<img src="mjprox8.php" width="320" height="240">
<img src="mjprox9.php" width="320" height="240">
</body>
</html>

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

Смотрю вывод sockstat | grep apache Вижу только 6 подключений

www-data apache2              17450    tcp4   127.0.0.1:37958           127.0.0.1:10101           ESTABLISHED
www-data apache2              17451    tcp4   127.0.0.1:47000           127.0.0.1:10105           ESTABLISHED
www-data apache2              17452    tcp4   127.0.0.1:57970           127.0.0.1:10104           ESTABLISHED
www-data apache2              17453    tcp4   127.0.0.1:49994           127.0.0.1:10103           ESTABLISHED
www-data apache2              17454    tcp4   127.0.0.1:44620           127.0.0.1:10102           ESTABLISHED
www-data apache2              17457    tcp4   127.0.0.1:41534           127.0.0.1:10106           ESTABLISHED

Экспериментируя, разделил index.php на два файла, в каждом по 4 камеры, загрузил в двух отдельных вкладках. Первая вкладка прогрузилась полностью, все 4 камеры показывают, а вторая подгрузила только две камеры, что в сумме дало прежние 6 камер.

Далее я попробовал зайти с разных ip для разных вкладок, и в этом случае для первого ip и первой вкладки было показано все 4 камеры, и для 2-ого ip и 2-ой вкладки тоже были показаны 4 камеры, sockstat показал уже 8 соединений.

Получается есть ограничение, либо apache, либо система (debian6), но не могу найти где. Подскажите пожалуйста, заранее спасибо.


Попробуй зайти с двух разных браузеров.

arturpub ★★ ()

Ограничение в 6 соединений напоминает Оперу. opera:config#Performance|MaxPersistentConnectionsServer

i-rinat ★★★★★ ()
Ответ на: комментарий от menzoberronzan

Сделал согласно примеру в 1000 соединений - ни чего не поменялось...

decoy ()
Ответ на: комментарий от arturpub

С двух разных браузеров но одного ip создает 8 соединений, то есть все работает. Получается не к ip привязка, а к сессии.

decoy ()
Ответ на: комментарий от decoy

Блин, я это уже кому-то писал неделю-другую назад :D У браузеров встроенный лимит коннектов к хосту, чтобы не досить его. Представь какая нагрузка на галереи например будет без лимита.

arturpub ★★ ()
Ответ на: комментарий от decoy

Работаю с хромом, но такой же синдром и в firefox'e

Гуглопоиск говорит, что в Chrome лимит в 6 соединений к одному серверу и он не меняется. Если не хочешь менять браузер, попробуй отдавать картинки с разных поддоменов.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.