@@ -115,7 +115,7 @@ properly configure and integrate it into your site.</p>
...
@@ -115,7 +115,7 @@ properly configure and integrate it into your site.</p>
webchat experience and that you have control over the data. The latter being a
webchat experience and that you have control over the data. The latter being a
requirement for many sites dealing with sensitive information.</p>
requirement for many sites dealing with sensitive information.</p>
<p>You’ll need to set up your own XMPP server and in order to have
<p>You’ll need to set up your own XMPP server and in order to have
<ahref="#id24"><spanclass="problematic"id="id25">`Session Support`_</span></a> (i.e. single-signon functionality whereby users are authenticated once and stay
<aclass="reference internal"href="#session-support">Session Support</a> (i.e. single-signon functionality whereby users are authenticated once and stay
logged in to XMPP upon page reload) you will also have to add some server-side
logged in to XMPP upon page reload) you will also have to add some server-side
code.</p>
code.</p>
<p>The <aclass="reference internal"href="#what-you-will-need">What you will need</a> section has more information on all these
<p>The <aclass="reference internal"href="#what-you-will-need">What you will need</a> section has more information on all these
...
@@ -128,7 +128,7 @@ requirements.</p>
...
@@ -128,7 +128,7 @@ requirements.</p>
<p><em>Converse.js</em> implements <aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> as its messaging protocol, and therefore needs
<p><em>Converse.js</em> implements <aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> as its messaging protocol, and therefore needs
to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).</p>
to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).</p>
<p>You can connect to public XMPP servers like <ttclass="docutils literal"><spanclass="pre">jabber.org</span></tt> but if you want to
<p>You can connect to public XMPP servers like <ttclass="docutils literal"><spanclass="pre">jabber.org</span></tt> but if you want to
have <ahref="#id26"><spanclass="problematic"id="id27">`Session Support`_</span></a> you’ll have to set up your own XMPP server.</p>
have <aclass="reference internal"href="#session-support">Session Support</a> you’ll have to set up your own XMPP server.</p>
<p>You can find a list of public XMPP servers/providers on <aclass="reference external"href="http://xmpp.net">xmpp.net</a> and a list of
<p>You can find a list of public XMPP servers/providers on <aclass="reference external"href="http://xmpp.net">xmpp.net</a> and a list of
servers that you can set up yourself on <aclass="reference external"href="http://xmpp.org/xmpp-software/servers/">xmpp.org</a>.</p>
servers that you can set up yourself on <aclass="reference external"href="http://xmpp.org/xmpp-software/servers/">xmpp.org</a>.</p>
</div>
</div>
...
@@ -168,7 +168,7 @@ website. This will remove the need for any cross-domain XHR support.</p>
...
@@ -168,7 +168,7 @@ website. This will remove the need for any cross-domain XHR support.</p>
<h2><aclass="toc-backref"href="#id6">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id6">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<h3><aclass="toc-backref"href="#id7">Pre-binding and Single Session Support</a><aclass="headerlink"href="#pre-binding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<spanid="session-support"></span><h3><aclass="toc-backref"href="#id7">Pre-binding and Single Session Support</a><aclass="headerlink"href="#pre-binding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<p>It’s possible to enable single-site login, whereby users already
<p>It’s possible to enable single-site login, whereby users already
authenticated in your website will also automatically be logged in on the chat server,
authenticated in your website will also automatically be logged in on the chat server,
but this will require custom code on your server.</p>
but this will require custom code on your server.</p>
...
@@ -176,7 +176,7 @@ but this will require custom code on your server.</p>
...
@@ -176,7 +176,7 @@ but this will require custom code on your server.</p>
<divclass="admonition note">
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="first admonition-title">Note</p>
<pclass="last">If you want to enable single session support, make sure to pass <strong>prebind: true</strong>
<pclass="last">If you want to enable single session support, make sure to pass <strong>prebind: true</strong>
when you call <strong>converse.initialize</strong> (see ./main.js).</p>
when you call <strong>converse.initialize</strong> (see ./index.html).</p>
</div>
</div>
<p>When you authenticate to the XMPP server on your backend, you’ll receive two
<p>When you authenticate to the XMPP server on your backend, you’ll receive two
tokens, RID (request ID) and SID (session ID).</p>
tokens, RID (request ID) and SID (session ID).</p>
<h1><aclass="toc-backref"href="#id8">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id8">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<p>When you download a specific release of <em>Converse.js</em>, say for example version 0.3,
<p>When you download a specific release of <em>Converse.js</em> there will be two minified files inside the zip file.</p>
there will be two minified files inside the zip file.</p>
<p>For version 0.3 they will be:</p>
<ulclass="simple">
<ulclass="simple">
<li>converse.0.3.min.js</li>
<li>converse.min.js</li>
<li>converse.0.3.min.css</li>
<li>converse.min.css</li>
</ul>
</ul>
<p>You can include these two files in your website via the <em>script</em> and <em>link</em>
<p>You can include these two files inside the <em><head></em> element of your website via the <em>script</em> and <em>link</em>
<p>Then, at the bottom of your page, after the closing <em></body></em> element, put the
following inline Javascript code:</p>
<divclass="highlight-python"><pre><script>
converse.initialize({
auto_list_rooms: false,
auto_subscribe: false,
bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
hide_muc_server: false,
i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
prebind: false,
show_controlbox_by_default: true,
xhr_user_search: false
});
</script></pre>
</div>
</div>
<p>The <em>index.html</em> file inside the Converse.js folder serves as a nice usable
<p>The <em>index.html</em> file inside the Converse.js folder serves as a nice usable
example of this.</p>
example of this.</p>
...
@@ -229,7 +242,7 @@ practical.</p>
...
@@ -229,7 +242,7 @@ practical.</p>
<p>You’ll most likely want to implement some kind of single-signon solution for
<p>You’ll most likely want to implement some kind of single-signon solution for
your website, where users authenticate once in your website and then stay
your website, where users authenticate once in your website and then stay
logged into their XMPP session upon page reload.</p>
logged into their XMPP session upon page reload.</p>
<p>For more info on this, read<ahref="#id28"><spanclass="problematic"id="id29">`Session Support`_</span></a>.</p>
<p>For more info on this, read: <aclass="reference internal"href="#pre-binding-and-single-session-support">Pre-binding and Single Session Support</a>.</p>
<p>You might also want to have more fine-grained control of what gets included in
<p>You might also want to have more fine-grained control of what gets included in
the minified Javascript file. Read <aclass="reference internal"href="#configuration">Configuration</a> and <aclass="reference internal"href="#minification">Minification</a> for more info on how to do
the minified Javascript file. Read <aclass="reference internal"href="#configuration">Configuration</a> and <aclass="reference internal"href="#minification">Minification</a> for more info on how to do
that.</p>
that.</p>
...
@@ -241,6 +254,8 @@ you’ll want to configure <em>Converse.js</em> to suit your needs before yo
...
@@ -241,6 +254,8 @@ you’ll want to configure <em>Converse.js</em> to suit your needs before yo
on your website.</p>
on your website.</p>
<p><em>Converse.js</em> is passed its configuration settings when you call its
<p><em>Converse.js</em> is passed its configuration settings when you call its
<em>initialize</em> method.</p>
<em>initialize</em> method.</p>
<p>You’ll most likely want to call the <em>initialize</em> method in your HTML page. For
an example of how this is done, please see the bottom of the <em>./index.html</em> page.</p>
<p>Please refer to the <aclass="reference internal"href="#configuration-variables">Configuration variables</a> section below for info on
<p>Please refer to the <aclass="reference internal"href="#configuration-variables">Configuration variables</a> section below for info on
all the available configuration settings.</p>
all the available configuration settings.</p>
<p>After you have configured <em>Converse.js</em>, you’ll have to regenerate the minified
<p>After you have configured <em>Converse.js</em>, you’ll have to regenerate the minified
...
@@ -357,6 +372,15 @@ manager, NPM.</p>
...
@@ -357,6 +372,15 @@ manager, NPM.</p>
</div>
</div>
<divclass="section"id="translations">
<divclass="section"id="translations">
<h1><aclass="toc-backref"href="#id23">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id23">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h1>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">Translations take up a lot of space and will bloat your minified file.
At the time of writing, the difference between <em>converse.min.js</em> and
<em>converse.min.no-locales.js</em> is about 50KB! Therefore, make sure to only
include those languages that you intend to support and remove from
./locale/locales.js those which you don’t need. Remember to rebuild the
minified file afterwards.</p>
</div>
<p>The gettext POT file located in ./locale/converse.pot is the template
<p>The gettext POT file located in ./locale/converse.pot is the template
containing all translations and from which for each language an individual PO
containing all translations and from which for each language an individual PO