Первая строка некоторых HTTP-ответов превратилась в «неопределенный, неопределенный, неопределенный»

#php #sockets #http #firefox #response

#php #сокеты #http #firefox #ответ

Вопрос:

Написание сокет-сервера с PHP 7.2. Случайным образом первая строка некоторых HTTP-ответов с сервера стала undefined undefined undefined соответствовать вкладке Сеть в Firefox 60. Поэтому я попытался записать все ответы, отправленные сервером сокетов, следующим образом:

 file_put_contents("C:\Users\Username\Desktop\Logs\".strlen($response).".txt", $response);
socket_write($client, $response, strlen($response));
  

Однако при просмотре журналов все те же HTTP-ответы, которые начинались с undefined undefined undefined Firefox, все в порядке. Все эти журналы начинались HTTP/1.1 200 OK так, как они и должны быть.

Эта проблема действительно останавливает мой процесс, потому что это сделало выполнение всего с сервером сокетов настолько ненадежным. Но я не мог найти источник проблемы после отладки PHP-кода в течение нескольких часов. Какие-нибудь советы?

Дополнительная информация: по какой-то причине тот же сервер сокетов не работает в Chrome, который отображает сообщение об ошибке с кодом ошибки ERR_SOCKET_NOT_CONNECTED . Это работает только в Firefox. Я также пытался использовать CURL для подключения к тому же серверу сокетов, но он говорит curl: (56) Recv failure: Connection was aborted .

Ответ №1:

Я решил проблему самостоятельно! По какой-то причине добавление socket_set_block($socket); строки сразу после socket_listen($socket); решает проблему.