title
Description
Body
Решил написать очередной велосипед те расширение для php но хотел бы узнать мало ли может он уже существует.
В общем задача такова нужно получить данные с нескольких url по http но при этом что бы получение данных происходило одновременно со всех url а не по очередности.
так как PHP процедурный и блокирует сокеты.
Рою в React но что то пока что глухо в основном везде работа с сервером
Неактивен
В общем разобрался я с react. Довольно таки не плохая библиотека. Жаль что я раньше не узнал что php может работать с неблокирующими сокетами. Да и вообще удивительно что он может работать с ними на низком уровне.
Замутил такую функцию.
|
|
Результаты довольно таки не плохие
Неактивен
Gemorroj написал:
а чем нативный curl_multi_* не подошел?
спасибо.
Неактивен
Gemorroj curl_multi по результатам моих тестов во много раз медленнее чем напрямую работать с сокетами
|
|
Неактивен
Вот только столкнулся со следующей проблемой. Понятия не имею как работать с tls соединениями. Можно было бы использовать stream_socket_client но тут проблема с блокировкой сокета. Почему то не хочет сниматься блокировка с сокетов. Пробовал так
|
|
Неактивен
Короче я тут крутил крутил. И обратил внимание что используя ssl/tls протокол подключение значительно затягивается во времени раза в сто. Возможно что stream_socket_client используя ssl игнорирует параметр STREAM_CLIENT_ASYNC_CONNECT блокирует сокет пока не составит подпись только после делает его неблокирующим и возвращает управление.
Что то я нигде не найду примеры для эмуляции tls соединения на обычном сокете. А ввесь протокол перечитывать реально впадло.
Паша ты случаем не знаком с этим протоколом, как мне подготовить сокет для работы по ssl?
Желательно бы решить задачу с ssl так как api.vk.com работает через ssl а вот если отказаться от него то появляются новые проблемы нужно каждый запрос к вк подписывать. Это в принципе не проблема но все же хотел разобраться с защищенным соединением
Добавлено спустя 9 минут 16 секунд:
В общем если не разберусь буду юзать сурл для ssl
Неактивен
Gemorroj написал:
TLENS, нет, я не работал с сокетами на таком уровне. Я бы не заморачивался и использовал CURL
Ну да я все таки решил взяться за курл и не морочить себе мозги. А на будущее найму человека что бы переписал функцию под сокеты)
Неактивен
В общем запилил себе такой класс. Удобно работать.
|
|
Воспроизводится что то вроде этого.
|
|
Неактивен