2010-03-23 4 views

ответ

3

Это не что-то, что просто. Он использует 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 может идентифицировать индивидуальные браузеры. Я смотрел на существующие рамки и т. Д., Чтобы делать такие вещи, но я ценил, как все это работает, и думал, что мой вариант использования может быть достаточно конкретным, чтобы можно было оптимизировать больше, чем общие рамки.

+3

Так что это был бы «длинный опрос», тогда;) – caf

 Смежные вопросы

  • Нет связанных вопросов^_^