Как подключиться к сокету unix из php

1

Как я могу обмениваться HTTP файлами в unix-сокетах домена в php.
Я ищу библиотеку, подобную этому: request-unixsocket, но это для python, мне нужно для php.
Просьба привести пример кода, если это возможно.

Согласно этому ответу curl имеет параметр --unix-socket но это не поддерживается в php-curl из этого ответа.
Я нашел Socket Client для PHP HTTP- библиотеки для php, но не могу понять, как ее использовать.
Просьба поделиться аналогичными библиотеками.
Редактировать:
Из этого блога мы можем каким-то образом использовать параметр CURLOPT_UNIX_SOCKET_PATH в php?

  • 0
    Извините, если мой ответ каким-либо образом вводит вас в заблуждение, вы можете подключиться к сокетам Unix в PHP, просто кажется, что вы не можете из php-curl. Вы можете использовать либо командную строку curl, либо прямое соединение с сокетом.
Теги:
sockets
http

2 ответа

1

попробуйте stream_socket_client.

resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] )
0

Я могу опоздать, но вот как это сделать, используя CURLOPT_UNIX_SOCKET_PATH. для других пользователей, которые посещают поиск ответа для этого.

    $socket = '/var/run/docker.sock';

    set_time_limit(0);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, $socket);
    curl_setopt($ch, CURLOPT_BUFFERSIZE, 256);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1000000);

    $writeFunction = function ($ch, $string) {
        echo $string;
        $length = strlen($string);
        printf("Received %d byte\n", $length);
        flush();
        return $length;
    };
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, $writeFunction);


    curl_setopt($ch, CURLOPT_URL, "http:/localhost/version");
    curl_exec($ch);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню