Ergänzung zum Link:
Hier mal ein Beispiel für PHP: https://github.com/sanwebe/Chat-Using-WebSocket-and-PHP-Socket
Die index.php liefert die webseite und die server.php wird in dem Beispiel so gestartet, dass diese einen eigenen Web-Socket auf Port 9000/TCP "aufmacht" und muss also durchlaufen. Das ist in vielen Fällen (shared hosting ohne eigenen (V-)Server) nicht machbar.
Die Angabe des localhosts in der index.php und der server.php ist insofern irreführend als dass das nicht der localhost sein muss, es wird bei einer realen Anwendung also der eigene, reale Server irgendwo im Internet sein.