Articles of сокеты

Php посылает байты массива в веб-сокете

Я использую следующую библиотеку https://github.com/Textalk/websocket-php я могу отправить строку, используя следующий код require('vendor/autoload.php'); use WebSocket\Client; $client = new Client("ws://echo.websocket.org/"); $client->send("Hello WebSocket.org!"); echo $client->receive(); // Will output 'Hello WebSocket.org!' Теперь мне нужно преобразовать строку в байты массива. require('vendor/autoload.php'); use WebSocket\Client; $client = new Client("ws://echo.websocket.org/"); $byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog'); […]

Ответ XML содержит символы «2000» и «20a0»

У меня есть запрос profind WebDAV, отправленный с использованием PHP. HTTP-запрос выглядит следующим образом: PROPFIND /path/to/whatever HTTP/1.1 User-Agent: My Client Accept-Encoding: deflate Depth: 1 Host: example.com Content-Type: text/xml;charset=UTF-8 Authorization: Basic bLahDeBlah= Content-Length: 82 Connection: close <?xml version='1.0' encoding='utf-8'?><propfind xmlns='DAV:'><allprop/></propfind> Он отлично работает, когда ответ XML меньше, чем около 1,5 МБ. Когда ответ больше, XML содержит […]

drupal_http_request возвращает код ошибки

У меня есть три веб-сайта Main, a, b. Если вы вошли в систему через веб-сайт «Главная», я включу сеанс для веб-сайтов «a», «b». Так что это нормально работает. Когда пользователь выходил из основного веб-сайта, мне нужно выходить из других двух веб-сайтов «a», «b». Есть два разных URL выхода для двух других веб-сайтов, поэтому я вызываю […]

Клиент PHP Socket – обнаружение отключения сервера

У меня есть клиент сокета, который подключается к серверу и ждет отправки строк текста с сервера. Я открываю соединение с: $handle = fsockopen(MY_IP_ADDRESS,MY_PORT,$sockErrno,$sockErrStr); stream_set_blocking($handle,1); stream_set_timeout($handle,MY_SOCKET_TIMEOUT); Затем: while (true) { $inString = fgets($handle,256); do some stuff with the received data… } Все это прекрасно работает. Между полученными сообщениями нет определенного интервала. Сообщения могут поступать несколько раз […]

Темы для PHP, разделяющие объект центрального сокета

Я создаю многопоточное приложение PHP CLI, которое говорит с сервером через сокеты. Цель состоит в том, чтобы приложение только создавало одно соединение с сервером (через отдельный класс), а затем разрешало дочерним потокам использовать установленный объект сокета. Не удалось выполнить следующий код: <?php /** * Test child class **/ class test extends Thread { private $server; […]

Как установить тайм-аут для fread при доступе к соке?

Ниже приведен мой код. Я хочу, чтобы fread мог вернуться, когда нет данных для чтения через несколько секунд. Я вызвал stream_set_timeout. Но это не сработает. И я также назвал stream_get_meta_data. Это еще не дает моей потребности. Я подключаю chat.facebook.com. $fp = fsockopen($server, 8888, $errno, $errstr); stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); fwrite($fp, $xml); stream_set_timeout($fp, 5); $str = fread($fp,8192);//This […]

PHP socket_write () отправляет только часть данных

Мне нужно отправить большой объем данных одним выстрелом. Но socket_write отправляет только часть его. Функция и переменная $ buffer правильны: socket_write($socket, $buffer, strlen($buffer)); Может быть, можно настроить лимит буфера или что-то еще? В этой проблеме есть много решений по адресу http://php.net/manual/en/function.socket-write.php, но все они разделяют буфер, чтобы отправить его по частям.

Запрос cURL к сокету Unix от php

Как выполнить следующий вызов curl из php curl –unix-socket /var/run/docker.sock http:/images/json Я просмотрел этот список опций, доступных для curl_setopt но не смог найти никакой опции, связанной с выше –unix-socket Из этого ответа я получил звонок. Редактировать: Из этого блога мы можем каким-то образом использовать параметр CURLOPT_UNIX_SOCKET_PATH в php?

PHP – ошибка при использовании socket_recv

У меня есть ошибка сокета при запуске socket_recv внутри этой функции: function readByteXByteSIBmsg() { $msg = ""; $buf=""; try { while( $ret=socket_recv($this->kpSocket,$buf,8192,0)){ $msg.=$buf; if($ret<8192) break; } $this->deb_print("KpCore:readByteXByteSIBmsg:READ LOOP TERMINATED"); } catch (Exception $e) { err_print("KPICore:readByteXByteSIBmsg:Exception on EVENT HANDLER:RECEIVE:\n" . $e); $this->$KP_ERROR_ID = $this->ERR_SOCKET_TIMEOUT; } return $msg; } Это текст ошибки: PHP Warning: socket_recv(): unable to […]

Как издеваться над встроенными функциями php socket?

Я работаю над некоторым кодом, который читается из сокета, и он ошибается, когда он получает определенный большой вход. Я пошел, чтобы добавить единичный тест для этого, прежде чем исправлять его, но застрял, потому что я не могу имитировать fread (и другие встроенные функции PHP, которые я использую, например, fsockopen , feof и т. Д.). Простыми […]