jeej bueno, mira el problema es el sigueiente, este tema se volvio largo, no confudas
socket de php con WEBSOCKET,
socket crea un puerto escucha, por TCP,UDP, en tu caso elegiste TCP, en cambio WEBSOCKET, es un protocolo que extiende el protocolo de TCP, la razon por que la primera conexion se queda como cargando, es por que en PHP en ningun momento le estas devolviendo una respuesta als ervidor, y en caso de que la devolvieras, en el lado cliente websocket no la va a comprender ya que no le estas indicando en el IDIOMA por asi decirlo que esta esperando
mira para que no te compliques con la comunicacion entre PHP sockets y WEBSOCKETS, usa una libreria
http://socketo.me/docs/websocket
o sino reactPHP
https://blog.wyrihaximus.net/2015/03/reactphp-sockets/
para que no te lies buscando donde descargar y como subirlo, puedes optar por INSTALARTE COMPOSER un gestor de librerias PHP
https://getcomposer.org/download/
descargate el WINDOWS installer si usas windows
de lo contrario, trabajar con SOCKETS directamente en php para hacer usar como servidor WEBSOCKETS, vas a complicarte mucho, tendras que manipular, banderillas, de estado, eventos, desconexiones, el mismo protocolo websocket, parseado de datos para el envio y recepcion.