БОШ (протокол)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Двунаправленные потоки через синхронный HTTP ( BOSH ) — это транспортный протокол , который эмулирует двунаправленный поток между двумя объектами (например, клиентом и сервером ) с использованием нескольких синхронных пар HTTP- запрос/ответ без необходимости использования опроса или асинхронного фрагментирования.
Для приложений, которым требуется как «принудительная», так и «вытягивающая» связь, BOSH значительно эффективнее использует полосу пропускания и быстрее реагирует, чем большинство других двунаправленных транспортных протоколов на основе HTTP и AJAX . BOSH достигает этого, избегая HTTP-опроса, но при этом не прибегая к фрагментированию HTTP-ответов, как это делается в методе, известном как Comet . На сегодняшний день BOSH использовался главным образом в качестве транспорта для обмена трафиком между клиентами и серверами Jabber/XMPP (например, для облегчения соединений веб-клиентов и мобильных клиентов в нестабильных сетях).
Для «push» клиент BOSH запускает HTTP-запрос, но сервер откладывает отправку ответа до тех пор, пока у него не появятся данные для отправки. [ 1 ] После получения ответа клиент немедленно делает еще один запрос по тому же HTTP-соединению, поэтому сервер всегда может отправить данные клиенту, не дожидаясь опроса клиента. Если во время ожидания ответа клиенту необходимо отправить данные на сервер, он открывает второе HTTP-соединение. Одновременно открыто не более двух HTTP-соединений: одно, по которому сервер может отправлять данные в качестве ответа, и другое, по которому клиент может отправлять данные в виде POST.
«Двунаправленные потоки через синхронный HTTP (BOSH)» и «XMPP через BOSH» являются стабильными стандартами Фонда стандартов XMPP .
Второй связанный стандарт XMPP Over BOSH (XEP-0206) определяет, как BOSH может использоваться для транспортировки разделов XMPP . Результатом является привязка HTTP для связи XMPP, предназначенная для использования в ситуациях, когда устройство или клиент не могут поддерживать долговременное TCP-соединение с сервером XMPP.