PHP WebSockets получает заголовки запросов

Я использую репозиторий это для своего сервера WebSocket, единственная проблема, насколько я вижу, заключается в том, что он сгенерировал идентификаторы сокетов с

$i = 1;
while (isset($this->wsRead[$i])) $i++;
return $i;

Я хотел бы передать идентификатор сокету при подключении

ws://127.0.0.1:9300?id=12345

проблема в том, что я не знаю, как получить этот параметр GET до того, как будет назначен идентификатор. Я долго искал и ничего не нашел. Насколько я вижу, только эти функции могут получить заголовки: socket_read и socket_recv, но проблема в том, что они как-то блокировать рукопожатия, потому что если я их использую, то в браузере я могу видеть

failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

Есть ли другие способы получить идентификатор, который я передаю при подключении?

В методе wsProcessClientHandshake библиотеки вы можете найти его в переменной $request . Но я не уверен

JensV 20.03.2019 16:37

Вы правы, я могу получить его там, но уже слишком поздно, поскольку на тот момент идентификатор уже был присвоен. Мне нужно получить заголовки в функции wsAddClient(), так как это место, где идентификатор присваивается сокету.

John 20.03.2019 16:48

Зачем тебе вообще нужен ID? Разве вы не можете предоставить свой идентификатор с сообщением после того, как соединение было установлено, а затем отобразить его в своем коде, не касаясь библиотеки?

JensV 20.03.2019 16:54

Я мог бы, и я делаю это прямо сейчас, но это означает, что я должен указать идентификатор для всех сообщений, чтобы проверить, разрешено ли пользователю выполнять какие-либо действия в WS.

John 20.03.2019 21:22

мое предложение состояло в том, чтобы отправить идентификатор в первое сообщение, а затем сохранить предоставленный вами идентификатор в массиве, используя идентификатор сокета в качестве ключа. Затем для любого действия вы можете найти предоставленный идентификатор для текущего соединения.

JensV 21.03.2019 08:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
196
0

Другие вопросы по теме