Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проксирующий/кэширующий "сервер" [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 2 [3]   

> Без описания
ArtyShock
Отправлено: 29 Июня, 2015 - 02:10:55
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Похоже что время суток дает о себе знать, начинаю непонимать Улыбка
За код спасибо еще раз но это только начало. Как бы отзеркалили заголовки, с чуть притормозом клиент таки делает что задумал. Но изначально задача прокладки была кроме этого в том что бы обмануть клиента который слишком часто запрашивает и эмулировать ему ответы сервера так как хочет клиент, а у самого сервера запрашивать данные не так часто (как это реализовано в проприетарном кривом клиенте). К тому что кроме заголовков прокладкой придется запрашивать и сами данные (часть их) и переотдавать их клиенту, через passthru допустим, в том виде в кот. он хочет.

(Отредактировано автором: 29 Июня, 2015 - 02:14:06)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Июня, 2015 - 02:13:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Да Вам проще скачивать файлы на сервер и отдавать их на прямую.
И не надо будет костылить.
Я читал тему, и примерно представляю что Вам надо, просто речь зашла о заголовках связанных с видео/аудио контентом, я и привнёс небольшую лепту по ним: может поможет.
Но задачи - разные.
 
 Top
ArtyShock
Отправлено: 29 Июня, 2015 - 02:23:08
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Насчет проще то да, но прикол в том что прокладка будет запускаться на самом же клиенте. Благо такое возможно сделать, но на клиенте нет места для скачки контента полностью, а так же нет ресурсов в качестве прокладки держать для этого промежуточный полноценный сервер (у кот. будет место хранить контент целиком).
Т.е. девайсина будет являться и клиентом и прокладкосервером одновременно, но запросы от девайсины в сторону конечного медиасервера должны начать исходить не так варварски как реализовали проприетарщики в клиенте девайсины )
Да, тут скорее придется пожертвовать перемотками и т.п. но хоть как то )
Ну с порционной выдачей приемом уже буду долбаться сам )
Еще раз Спасибо!

(Отредактировано автором: 29 Июня, 2015 - 02:25:32)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Июня, 2015 - 02:39:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Кстати, тормоза с откликом не во всех брузерах.
В Мозиле, например, всё нормально с этим.
Вот пример:
http://afisha[dot]test[dot]dikidi[dot]ru/video/trailer/738

(Отредактировано автором: 29 Июня, 2015 - 03:46:10)

 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2015 - 03:35:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




ArtyShock, я плюсанул карму armancho7777777 за тебя.
Хотя, когда у тебя наберется 50 сообщений, можешь еще раз ему плюсануть -- он не обидится ))
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Июня, 2015 - 04:02:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




ArtyShock пишет:
К тому что кроме заголовков прокладкой придется запрашивать и сами данные (часть их) и переотдавать их клиенту
выше приведённая функция всё это уже делает.

Прокомментирую логику, чтобы стало ясно.
1. Получаем заголовки от клиента
2. Открываем поток с нужными опциями (заголовки и.д.)
3. Читаем/отдаём полученные заголовки
4. Читаем файл в контексте этого потока

и отдаём клиенту.
Чтение файла происходит с нужной позиции, т.к. уже передали необходимые заголовки (Range).

Потому для поддержания функционала перемотки/переходов и требуется гонять туда-сюда заголовки.
Когда мы кликаем по time line плеера, чтобы промотать ролик, выполняется запрос браузером к серверу, который отдаёт видео-файл с позиции, указанной в Range.
Ведь, по сути, происходит неявное скачивание файла при просмотре видео в браузере.
Соответственно нам надо всё это дело обработать в "прокладке" и вернуть то, что запросил клиент (браузер).
А так как мы уже указали в первых заголовках тип контента, то браузер начал работать с "прокладкой" как с видео-контентом.
Всё.

ArtyShock пишет:
Но изначально задача прокладки была кроме этого в том что бы обмануть клиента который слишком часто запрашивает и эмулировать ему ответы сервера так как хочет клиент, а у самого сервера запрашивать данные не так часто

У плеера есть буферизация.

(Отредактировано автором: 29 Июня, 2015 - 05:36:31)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Июня, 2015 - 19:47:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Поправил в коде проверку статуса.
(Добавление)
Убрал дефолтный заголовок If-Range. Он не всегда нужен.
 
 Top
ArtyShock
Отправлено: 07 Июля, 2015 - 01:33:49
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Как ни странно :о) проксяпрокладка заставила таки работать девайсину.
Просто та самая задержка от обработки заголовков туда сюда отслужила положительную службу. А именно антидос тот что срабатывал на конечном медиасервере просто стал получать запросы не так быстро как раньше и соответственно не воспринимает уже многочисленные запросы как вредные (можно собственно и принудительно паузы между запрос-ответ добавить).
Вот только странность осталась avi, mp4 работают а mkv нет, пока не понял почему..
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB