websocket именно для этого и создавалось
а до этого использовались отложенные longpool http запросы с паузой (сервер держит открытым соединение с клиентом, который делает запрос типа 'есть ли чо для меня', до тех пор пока не потребуется отправить ему сообщение, и так в цикле)