Как работает чат в браузере? - PullRequest
36 голосов
/ 02 августа 2009

Просто любопытно. Как именно работает чат в браузере? Обычно, если пользователь заходит на веб-страницу, его / ее веб-браузер запрашивает содержимое страницы. Сервер производит вывод и отправляет его на компьютер пользователя. Но с чатом все наоборот (ну, не совсем). Это не пользователь, запрашивающий сообщение чата с какого-либо сервера, а сервер, который отправляет его напрямую. Теперь это действительно просто сделать с помощью «обычного» сервера, но то, что сервер отправляет его в браузер, меня смущает. Публикация части сообщения понятна, все просто. Вы просто отправляете данные на сервер, например, с помощью ajax или чего-то еще. Но как другой компьютер мгновенно «узнает», что ему было написано сообщение? Очевидно, это должен быть сервер, отправляющий его на другой компьютер, как только он будет записан. Но почему-то это не вычисляется в моем мозгу. В моем мозгу браузер только запрашивает вещи, но не просто получает их. Как именно ты это делаешь?

Возьмем, к примеру, Google Talk в Gmail. Как это работает? Как это реализовано?

Ответы [ 6 ]

11 голосов
/ 02 августа 2009

Существует несколько push-технологий , таких как Comet , но они не получили широкого применения. В большинстве случаев это выполняется с помощью опроса с небольшим интервалом с AJAX и загрузкой любых новых сообщений, доступных с момента последнего загруженного сообщения.

7 голосов
/ 02 августа 2009

Взгляните на Комету

4 голосов
/ 02 августа 2009

Orbited - хороший способ реализовать это, он использует кометные методологии. Вы можете найти учебник здесь .

Кто-то упоминал опрос ajax, но комета всегда лучше, чем опрос . Ну, это просто сенсационный заголовок, но комета, безусловно, более уместна и может привести к меньшему стрессу на стороне сервера с правым бэкэндом.

2 голосов
/ 02 августа 2009

Используется AJAX - клиентский javascript, выполняемый в браузере пользователя GMail, отправляет и получает сообщения с сервера Google и записывает их в окно браузера - перезагрузка страницы не требуется.

1 голос
/ 21 июля 2012

Я разработал браузерный чат, схожий с технологией чата Facebook (http://chatsign.com). Это не технология push, но что-то лучше, чем опрос, его называют длинным опросом ajax.

Для получения дополнительной информации о длинном опросе ajax вы можете провести исследование или посетить: http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

0 голосов
/ 31 мая 2014

Современные приложения чата используют SSE (Server Sent Events: функция html5) для отправки новых сообщений в браузеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...