Этот чат использует «длинный опрос» или «потоковое HTTP»?Этот чат использует «длинный опрос» или «потоковое HTTP»?
http://go-mono.com/moonlight/chat.aspx
Этот чат использует «длинный опрос» или «потоковое HTTP»?Этот чат использует «длинный опрос» или «потоковое HTTP»?
http://go-mono.com/moonlight/chat.aspx
Это не что-то, что просто. Он использует http://www.mibbit.com/chat, который является полным клиентом IRC, написанным на Javascript и Java. Блог на http://blog.mibbit.com/.
Редактировать:Here's your answer.
Первая часть, в которой я работал, была связь между браузером и сервером. Это сделано с использованием 2 XMLHttpRequests. Первый - это просто отправить данные из браузера на сервер. Он использует keep-alive, чтобы минимизировать новые соединения.
Второй XHR - это «получение ленивого опроса». Он подключается к серверу, и сервер держит его открытым до тех пор, пока не появятся сообщения, или истечет время ожидания. Это тоже поддерживается, поэтому следующий запрос идет по тому же соединению.
В результате у вас есть 2 соединения, открытые для сервера, с пакетами (в данном случае json) и некоторыми заголовками http время от времени. Чтобы убедиться, что сервер будет масштабироваться, я написал пользовательский веб-сервер в java, используя nio. Он обрабатывает все соединения в одном потоке и, как я говорю, масштабируется до десятков тысяч подключений.
Если клиент запрашивает новое соединение, он отправляет запрос на веб-сервер, который затем подключается и запускает проксирование и т. Д. Он также запускает идентификационный сервер в случае соединений irc, так что сервер irc может идентифицировать индивидуальные браузеры. Я смотрел на существующие рамки и т. Д., Чтобы делать такие вещи, но я ценил, как все это работает, и думал, что мой вариант использования может быть достаточно конкретным, чтобы можно было оптимизировать больше, чем общие рамки.
Так что это был бы «длинный опрос», тогда;) – caf
Это не вопрос программирования, не так ли? – Gabe
Сайт теперь опущен –