да есть готовая клиентская часть, зачем писать самому?
devristo/phpws
Только баг есть у него, если в конце пути коннекта к вебсокет серверу, после порта, не будет символов - то не работает. Тоесть
$client = new WebSocket('ws://127.0.0.1:8080'); //не работает
$client = new WebSocket('ws://127.0.0.1:8080/'); //работает
$client = new WebSocket('ws://127.0.0.1:8080?someparams'); //работает