Работа с websockets + $_SESSION + $_SERVER
$_SESSION и $_SERVER нужны для работы поверх http, а у вас голые (почти) tcp сокеты. Вот и думайте.
Обычно при установке соединения проводится аунтефикацию и все. По сути алгоритм простой

Сервер слушает входящие соединения
Клиент соединяется с сервером
Клиент отправляет данные (токен скажем)
Сервер проверят токен и определяет какому пользователю соответствует данное соединение.

Ну а дальше просто. Если нужно какому-то пользователю послать данные, находим все соответсвующие соединения и шлем данные.
$_SESSION и $_SERVER для этих целей вообще ненужны.
Я так понимаю, что при работы с веб-сокетами нет понятия сессия — есть понятие соединения.
github.com/reactphp/react/blob/master/examples/tcp-chat.php