#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);
решает проблему.