HTML5 Websockets для приложения Realtime Chat?

Мы планировали создать приложение для чата на основе HTML5 с использованием технологии Websockets.

Поэтому мой вопрос:

  1. Каковы браузеры, поддерживающие веб-сайты в настоящее время на сегодняшний день?

  2. Если браузер не поддерживает его, то каков возможный изящный откат?

  3. Есть ли полипол, который может помочь?

С Уважением,

Каковы браузеры, поддерживающие веб-сайты в настоящее время на сегодняшний день?

Как указывалось в предыдущих ответах.

Видеть:

Если браузер не поддерживает его, то каков возможный изящный откат?

Если ваш веб-сервер в реальном времени поддерживает только WebSockets, то лучшим вариантом является использование web-socket-js, это полисполнение на основе Flash, которое создает объект WebSocket которым можно взаимодействовать, таким же образом, как и родной объект WebSocket .

Дополнительные резервные копии, которые должны поддерживаться вашим веб-сервером реального времени и управляемые клиентской библиотекой JavaScript, которые он предоставляет, – упорядочены лучше всего в худшем:

  1. EventSource – однопоточное поточное соединение с сервером -> клиент. Двунаправленная связь может быть достигнута с использованием второго HTTP-запроса.
  2. HTTP Streaming – использует два соединения для имитации двунаправленной связи. Сообщения «нажимаются» на постоянный «потоковый» сервер соединений -> клиент
  3. HTTP Long-Polling – также использует два соединения. Тем не менее, сервер -> клиент открывается, удерживается до тех пор, пока не появится новое сообщение или не произойдет тайм-аут. Затем он закрывается, и если какие-либо данные были установлены, они будут отправлены в ответ.
  4. Стандартный HTTP-опрос – гораздо менее эффективный и из-за большого количества потенциально пропавших запросов. Однако, если обновления, предлагаемые вашим приложением, происходят не так часто, и не имеет значения, являются ли данные «устаревшими» на время между запросами на опрос, то это может быть приемлемым решением. Здесь нет «толчка».

Варианты 1. и 2. могут быть достигнуты различными способами в зависимости от веб-браузера. Это то, что делает их «хаками». Теперь у нас есть WebSocket для двунаправленной связи и EventSource (события, отправленные сервером), которые очень похожи на потоки HTTP с дополнительным преимуществом, поддерживающим автоматическое пересоединение.

Есть ли полипол, который может помочь?

Да, см. Web-socket-js, как упоминалось ранее.

Для PHP ваш лучший выбор – Ratchet . Он не работает в Apache, поэтому он не страдает от тех же ограничений – он не был построен с учетом парадигмы Request / Response.

Наиболее часто используемые решения, которые я вижу сейчас:

  • Faye – node.js и ruby
  • socket.io – node.js и порты доступны для разных языков
  • SockJS – erlang , node.js, ruby
  • SignalR – .NET
  • XSockets – .NET

Для других вариантов, включая хостинговые службы, такие как Pusher (с которыми я работаю в момент написания), ознакомьтесь с этим руководством по веб-технологиям в реальном времени, которое я поддерживаю (и принимаю участие).

Как указано NullPoiиteя и Orangepill, вы можете посмотреть на caniuse и html5please . Итак, это был ваш первый пункт /

Ваш второй и третий точки больше подходят для резервного варианта. Ну, вы можете использовать опрос. (см. этот ответ для получения дополнительной информации).

Ну, это не в вас вопрос, но точка, которую вы должны рассмотреть (потому что вы отметили ее под php). Websockets имеют активное соединение, пока пользователь активен. PHP не подходит для этого, ваш сервер будет вливаться в соединение, а также человек с плохим значением может легко убедиться, что сервер затоплен.

Это потому, что, если вы этого хотите, вам нужно установить ограничение времени на 0 (так никогда). Таким образом, ваш сервер будет складывать запросы до тех пор, пока они не будут заполнены. (как он действует как соединение, я не знаю).

Если вы не используете websockets и PHP, вы должны посмотреть на толкатель . Я использовал эту услугу для своего чата. Он работает как волшебство и отнимает у вас все трудные вещи.

Я надеюсь, что информация поможет вам разработать приложение для nive

Фэй удивительна, я люблю Пушера, но я хотел, чтобы что-то было легко и просто реализовать, что я могу управлять на своем собственном сервере. Который после начала изучать Node.js, я был очень впечатлен Faye. Он обеспечивает большую поддержку websockets, http, но мне нравится, что вы можете использовать протокол Bayeux.

http://faye.jcoglan.com/node.html

Мы сделали такую ​​вещь, и достаточно создать стабильный сервер сокетов php в связи с веб-сокетами html5.

Несколько сведений о наших часто задаваемых вопросах: http://www.livesupportrhino.com/faq/c/4/rhino-websocket

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

Но для меня я предпочитаю использовать PHP-сервер веб-сокетов для общения и javascript для clent-side с помощью официального сайта PHP, вы можете приступить к созданию своего веб-сервера сокетов.