У вас есть идея инициируемой клиентом связи, которая подходит для отправки сообщений с клиента на сервер.
Как следствие природы HTTP, не имеющей состояния, нет способа "перенаправить" данные, незапрещенные, клиенту.
Чтобы обойти это, всегда оставляйте соединение с сервером открытым. Запрос находится на рассмотрении, и когда серверу есть, что сказать, он отвечает на ожидающий запрос. Всякий раз, когда это происходит, клиент создает новый запрос, чтобы оставить работу до следующего сеанса связи между сервером и клиентом.
Еще один способ реализовать связь в режиме реального времени - частые опросы. Но я не рекомендую такой подход, правда. Особенно не для чата.