Difference between revisions of "Tech pages/BOSH"
Neustradamus (talk | contribs) m |
m (Remove incorrect mailing list section) |
||
Line 42: | Line 42: | ||
* xmpp4js (JavaScript) | * xmpp4js (JavaScript) | ||
* XMPP4R (Ruby) | * XMPP4R (Ruby) | ||
Revision as of 19:16, 16 October 2018
Overview
BOSH is "Bidirectional-streams Over Synchronous HTTP", a technology for two-way communication over the Hypertext Transfer Protocol (HTTP). BOSH emulates many of the transport primitives that are familiar from the Transmission Control Protocol (TCP). For applications that require both "push" and "pull" communications, BOSH is significantly more bandwidth-efficient and responsive than most other bidirectional HTTP-based transport protocols and the techniques known as AJAX. BOSH achieves this efficiency and low latency by avoiding HTTP polling, yet it does so without resorting to chunked HTTP responses as is done in the technique known as Comet. To date, BOSH has been used mainly as a transport for traffic exchanged between XMPP clients and servers (e.g., to facilitate connections from web clients and from mobile clients on intermittent networks). However, BOSH is not tied solely to XMPP and can be used for other kinds of traffic, as well.
Specifications
BOSH is defined in two specifications:
Implementations
Servers
The following XMPP servers include built-in support for BOSH:
- ejabberd
- Jabber XCP
- Openfire
- Prosody
- Tigase
Connection Managers
The following standalone XMPP connection managers can be used with a wide variety of XMPP servers:
- Araneo
- JabberHTTPBind
- Punjab
- rhb
Clients
- Adium
- Gajim
- JWChat
- Pidgin
- Soashable
- SparkWeb
- Tigase Messenger
- Tigase Minichat
Libraries
- emite (gwt)
- gloox (C++)
- JSJaC (JavaScript)
- strophe (C or JavaScript)
- XIFF (Flash)
- XMPP4GWT (gwt)
- xmpp4js (JavaScript)
- XMPP4R (Ruby)