Я создаю простой сервер сокетов в php.Но у меня есть некоторые сомнения, так как я впервые делаю что-то подобное.У меня вопрос, как мне определить клиента, возможно, это система аутентификации.
Что я пробовал до сих пор:
Код сервера: https://www.codepile.net/pile/vBZP9xkq
Код клиента: https://www.codepile.net/pile/YlD2JDjB
Cookies
Когда я начал создавать сервер, я подумал, что аутентификации нетнужна была система, так как у меня есть сайт с логином, в принципе сокет собирался использовать один и тот же файл cookie, и на сервере сокетов у меня был бы доступ к сеансу клиента.
И вот онзнал, что сокет X был клиентом X.
Но к моему удивлению в заголовках появляется другой phpsessid.
PHPSESSID=7fo97nhaqfgir55ar17cr8c364 // php and js (site)
PHPSESSID=isjbjik06p0d8srm4j1ccptj2b // socket
Как по-разному они не работают.
Hash
Это был мой второй подход, добавление параметров к адресу сокета:
- mysocket.com: 9000 /? H = 123456789
Но я быстро понялчто на сокет-сервере я ничего не смог поймать, заголовки и переменные $ _SERVER и $ _REQUEST не принимают параметры.
Позже я понял, что он не проходит, поскольку это не http-запрос, поэтому он не несет эту информацию.
Заключение
В этот момент я немного растерялся, я не знаю, как идентифицировать клиента, который входит в сокет, поскольку единственная информация, которую я имею, - это ip, и это нецелесообразно, поскольку в одном и том же ip может быть X клиентов.
Может кто-нибудь объяснить мне правильный способ аутентификации в сокете?