Проще всего реализовать не через сокеты, а через Long polling, это обычный AJAX, но использующий то, что HTTP основан на TCP (низший уровень сокетов), и есть возможность долго ждать ответа сервера, таким "костылем" и обеспечится "real-time" AJAX. Да, именно "костыль", да, не оптимально по нагрузке на сервер, зато более легко и надежно, чем сокеты, HTTP даже новее, а сокеты технология из 1980х годов, и WebSocket не далеко от них ушли по надежности, довольно сложно реализовать стабильное соединение в сокетах, но если все-таки WebSocket, то сперва изучайте на Node.js, потом переходите на PHP, в крайнем случае оставляете Node.js, это идеальный подход к мало знакомым областям.