From 66ef67a589c734ab47afc136d3e44e188b8b1d87 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Mon, 4 Sep 2017 16:18:13 +0200 Subject: [PATCH] Add setup diagram to docs --- docs/source/images/diagram.png | Bin 0 -> 82824 bytes docs/source/images/diagram.xml | 1 + docs/source/setup.rst | 51 +++++++++++++++++++++------------ 3 files changed, 34 insertions(+), 18 deletions(-) create mode 100644 docs/source/images/diagram.png create mode 100644 docs/source/images/diagram.xml diff --git a/docs/source/images/diagram.png b/docs/source/images/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb266e037a0c9a7d49dd9695a98459262f3763c GIT binary patch literal 82824 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 L(oigxHx2q9yIq~B literal 0 HcmV?d00001 diff --git a/docs/source/images/diagram.xml b/docs/source/images/diagram.xml new file mode 100644 index 000000000..02a9d02f8 --- /dev/null +++ b/docs/source/images/diagram.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/source/setup.rst b/docs/source/setup.rst index d2e09ec8a..067258ca4 100644 --- a/docs/source/setup.rst +++ b/docs/source/setup.rst @@ -12,22 +12,37 @@ Setup and integration What you will need ------------------ -If you'd like to host your own version of converse.js or you would like to -integrate it into your website, then you'll need to set up and configure some -more server components. +If you'd like to host your own version of Converse.js or you would like to +integrate it into your website, then you'll need to do some further setup work. -For example, if you want to allow chat accounts under your own domain (for -example, the same domain as your website), then you will need to set up your -own :ref:`XMPP server`. +For example, if you want to allow chat accounts under your own domain (i.e. +the same domain as your website), then you will need to set up your +own :ref:`XMPP server` that hosts accounts under that domain. -Besides an XMPP server, you also need a way for converse.js (which uses HTTP), to -communicate with XMPP servers (which use XMPP). +Besides an XMPP server, you'll also need a way for Converse.js (which uses HTTP +or Websocket), to communicate with the XMPP server(s). -For this, you'll need :ref:`BOSH Connection Manager`. +Here you have two choices. You can either use a :ref:`BOSH Connection Manager` +(standalone or integrated into the XMPP server) which allows you to use the +XMPP protocol over HTTP, or you can use a websocket connection if your XMPP +server supports it. + +Furthermore, it's possible to let users who are authenticated against your web +application to also automatically be logged in to the XMPP server. + +There are various ways in which this can be achived. One way of doing this is +to use a directory service such as LDAP or Active Directory and to share it +between your backend web application and your XMPP server. The diagram below +assumes such a setup. + +For other options, please read the section: :ref:`session-support`. + +.. figure:: images/diagram.png + :align: center + :alt: A diagram of a possible setup, consisting of Converse.js, a web server, a backend web application, an XMPP server, a user directory such as LDAP and an XMPP server. + + This diagram shows a potential setup containing various services (image generated with `draw.io `_). -Lastly, if you want to maintain a single chat session for your website's users, -you'll need to set up a BOSH session on your server, which converse.js can then -connect to once the page loads. Please see the section: :ref:`session-support`. .. _`XMPP server`: @@ -36,14 +51,13 @@ An XMPP server *Converse.js* implements `XMPP `_ as its messaging protocol, and therefore needs to connect to an XMPP/Jabber -server (Jabber is really just a synonym for XMPP). +server (Jabber® is an older and more user-friendly synonym for XMPP). You can connect to public XMPP servers like ``jabber.org`` but if you want to have :ref:`session support ` you'll have to set up your own XMPP server. -You can find a list of public XMPP servers/providers on `xmpp.net `_ and a list of -servers that you can set up yourself on `xmpp.org `_. - +You can find a list of public XMPP servers/providers on `xmpp.net `_ +and a list of servers that you can set up yourself on `xmpp.org `_. .. _`BOSH connection manager`: @@ -51,10 +65,11 @@ A BOSH Connection Manager ========================= Your website and *Converse.js* use `HTTP `_ -as protocol to communicate with the webserver. HTTP connections are stateless and usually shortlived. +as protocol to communicate with the webserver. HTTP connections are +stateless and usually shortlived. XMPP on the other hand, is the protocol that enables instant messaging, and -its connections are stateful and usually longer. +its connections are stateful and usually last much longer. To enable a web application like *Converse.js* to communicate with an XMPP server, we need a proxy which acts as a bridge between these two protocols.