Javascript для подключения к сокету - PullRequest
0 голосов
/ 27 июля 2010

Я хотел создать веб-чат. Было предложено использовать Php Socket Servers. Я сделал один, и они хорошо работают с клиентом Telnet.
Что меня смущает, так это то, как передать эти данные клиенту через ajax (без обновления страницы). Все, что я могу придумать, это вызвать php-файл с помощью ajax, получить данные и обновить страницу. Но с другой стороны это не сработает.
Или я что-то упустил?

Как бы вы реализовали веб-чат 1 на 1?

Ответы [ 2 ]

0 голосов
/ 27 июля 2010

Одним из решений является длительный опрос.Клиент откроет AJAX-запрос к сценарию, который будет блокировать и ждать поступления данных. Если в течение минуты данные не поступят, он вернется и клиент снова откроет соединение.Если данные поступают, он немедленно возвращает данные, и клиент обновляет их представление.

Для отправки данных просто выполните обычный обратный вызов AJAX.

0 голосов
/ 27 июля 2010

У вас есть идея инициируемой клиентом связи, которая подходит для отправки сообщений с клиента на сервер.

Как следствие природы HTTP, не имеющей состояния, нет способа "перенаправить" данные, незапрещенные, клиенту.

Чтобы обойти это, всегда оставляйте соединение с сервером открытым. Запрос находится на рассмотрении, и когда серверу есть, что сказать, он отвечает на ожидающий запрос. Всякий раз, когда это происходит, клиент создает новый запрос, чтобы оставить работу до следующего сеанса связи между сервером и клиентом.

Еще один способ реализовать связь в режиме реального времени - частые опросы. Но я не рекомендую такой подход, правда. Особенно не для чата.

...