208 lines
11 KiB
HTML
208 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset='utf-8' />
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
|
|
<meta name="description" content="Converse.js: Open Source Browser-Based Instant Messaging" />
|
|
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
|
|
<link rel="stylesheet" type="text/css" media="screen" href="converse.css">
|
|
<script data-main="main" src="components/requirejs/require.js"></script>
|
|
<!-- <script src="converse.min.js"></script>-->
|
|
<title>Converse.js</title>
|
|
</head>
|
|
|
|
<body>
|
|
<!-- HEADER -->
|
|
<div id="header_wrap" class="outer">
|
|
<header class="inner">
|
|
<a id="forkme_banner" href="https://github.com/jcbrand/converse.js">View on GitHub</a>
|
|
<h1 id="project_title"><a href="http://conversejs.org">Converse.js</a></h1>
|
|
<h2 id="project_tagline">An XMPP chat client for your website</h2>
|
|
<section id="downloads">
|
|
<a class="zip_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.6.5.zip">Download the latest release as a .zip file</a>
|
|
<a class="tar_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.6.5.tar.gz">Download the latest release as a tar.gz file</a>
|
|
</section>
|
|
</header>
|
|
</div>
|
|
|
|
<!-- MAIN CONTENT -->
|
|
<div id="main_content_wrap" class="outer">
|
|
<section id="main_content" class="inner">
|
|
|
|
<p><strong>Converse.js</strong> is an open source webchat client, that
|
|
runs in the browser and can be integrated into any website.</p>
|
|
|
|
<p>It's similar to <a href="https://www.facebook.com/sitetour/chat.php" target="_blank">Facebook chat</a>, but also supports multi-user chatrooms.</p>
|
|
|
|
<p><em>Converse.js</em> can connect to any accessible <a href="http://xmpp.org" target="_blank">XMPP/Jabber</a> server, either from a public provider such as <a href="http://jabber.org">jabber.org</a>, or to one you have set up yourself.</p>
|
|
|
|
<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,
|
|
but you will have to pre-authenticate them on your server. You can refer to the <a href="/docs/html/index.html">documentation</a> for more
|
|
info.</p>
|
|
|
|
<h2>Features</h2>
|
|
<ul>
|
|
<li>Single-user chat</li>
|
|
<li>Multi-user chat in chatrooms (<a href="http://xmpp.org/extensions/xep-0045.html">XEP 45</a>)</li>
|
|
<li>vCard support (<a href="http://xmpp.org/extensions/xep-0054.html">XEP 54</a>)</li>
|
|
<li>Service discovery (<a href="http://xmpp.org/extensions/xep-0030.html">XEP 30</a>)</li>
|
|
<li>Contact rosters</li>
|
|
<li>Manually or automically subscribe to other contacts</li>
|
|
<li>Accept or decline contact requests</li>
|
|
<li>Roster item exchange (<a href="http://xmpp.org/extensions/tmp/xep-0144-1.1.html">XEP 144</a>)</li>
|
|
<li>Chat statuses (online, busy, away, offline)</li>
|
|
<li>Custom status messages</li>
|
|
<li>Typing notifications</li>
|
|
<li>Third person messages (/me )</li>
|
|
<li>Translated into multiple languages (af, de, es, fr, hu, it, nl, pt-BR, ru)</li>
|
|
</ul>
|
|
|
|
<h2>Screencasts</h2>
|
|
<ul>
|
|
<li><a href="http://opkode.com/media/blog/instant-messaging-for-plone-with-javascript-and-xmpp" target="_blank">Screencast 1</a>:
|
|
Integrated into a Plone site via <strong>collective.xmpp.chat</strong>.
|
|
</li>
|
|
<li><a href="http://opkode.com/media/blog/2013/04/02/converse.js-xmpp-instant-messaging-with-javascript" target="_blank">Screencast 2</a>:
|
|
A static HTML page with <em>Converse.js</em>. Here we chat to external XMPP accounts on Jabber.org and Gmail.
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<h2>Integration into other frameworks</h2>
|
|
|
|
<ul>
|
|
<li><h4><a href="http://plone.org" target="_blank">Plone</a></h4>
|
|
<strong><a href="http://github.com/collective/collective.xmpp.chat" target="_blank">collective.xmpp.chat</a></strong>
|
|
is an add-on for Plone that uses <em>Converse.js</em>.
|
|
Together with <a href="http://github.com/collective/collective.xmpp.core" target="_blank">collective.xmpp.core</a>, it provides for single-signon-support (SSO)
|
|
and also enables you to manually or automatically
|
|
register your Plone users onto your XMPP server.
|
|
</li>
|
|
<li><h4><a href="http://www.djangoproject.com" target="_blank">Django</a></h4>
|
|
<strong><a href="https://pypi.python.org/pypi/django-conversejs" target="_blank">django-conversejs</a></strong> is an app that makes it easer to integrate <em>Converse.js</em>
|
|
into Django. It adds single-signon-support (SSO) support and a database model to store XMPP credentials.
|
|
</li>
|
|
<li><h4><a href="http://roundcube.net" target="_blank">Roundcube</a></h4>
|
|
<strong><a href="https://github.com/priyadi/roundcube-converse.js-xmpp-plugin" target="_blank">roundcube-converse.js-xmpp-plugin</a></strong>
|
|
is a plugin for Roundcube Webmail. It's README states that it's still a work in progress.
|
|
</li>
|
|
</ul>
|
|
|
|
<p>If you have integrated <em>Converse.js</em> into any other CMS or framework,
|
|
<a href="http://opkode.com/contact.html" target="_blank">please let me know</a> and I'll mention it on this page.</p>
|
|
|
|
<h2>Demo</h2>
|
|
<p>You can log in with any existing XMPP account. There is also a list of public XMPP providers on <a href="http://xmpp.net" target="_blank">xmpp.net</a>.</p>
|
|
<p><em><strong>Note:</strong> currently the demo doesn't work in Internet Explorer older
|
|
than 10. This is due to lacking support for <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a>,
|
|
a standard which enables cross-domain XmlHttpRequests. There are ways
|
|
around this, but it hasn't been a priority for me to implement them for this demo.
|
|
See <a href="/docs/html/index.html#overcoming-cross-domain-request-restrictions" target="_blank">here</a> for more information.</p></em>
|
|
|
|
<h3>Is it secure?</h3>
|
|
<p>
|
|
Yes, as long as you can trust that the Javascript being downloaded is
|
|
not being tampered with. This page itself is served by Github and is not <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS/TLS</a>
|
|
encrypted (i.e. served via <a href="https://en.wikipedia.org/wiki/HTTPS">HTTPS</a>).
|
|
I don't know how probable it is that Github served pages could be hacked to
|
|
insert malicious Javascript.
|
|
</p>
|
|
<p>
|
|
Ideally you'd want your site to be served encrypted via HTTPS.
|
|
In this case, use with caution. You can of course go
|
|
download the source from Github and run this page locally, removing
|
|
the attack vector altogether.
|
|
</p>
|
|
<p>
|
|
<em>Converse.js</em> itself makes encrypted HTTPS requests to a <em>connection manager</em>, which will make an
|
|
SSL/TLS encrypted connection to an XMPP server (if the server supports it).
|
|
</p>
|
|
<p>
|
|
Logging in happens via <a href="https://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer">SASL</a>.
|
|
</p>
|
|
<p>
|
|
That said, the developers don't assume any liability for any loss or damages as a result of using this software or demo. Use at your own risk.
|
|
</p>
|
|
|
|
<h3>Session support</h3>
|
|
<p>
|
|
The chat client will disconnect whenever you reload the page. If you
|
|
want the user's session to persist across page reloads, you can
|
|
establish an authenticated connection on the server side and then attach to
|
|
this connection in your browser.
|
|
</p>
|
|
<p><em>Converse.js</em> already supports this usecase, but you'll have to do some integration work yourself.</p>
|
|
|
|
|
|
<h2>Documentation</h2>
|
|
<p>
|
|
The documentation is included in the source download under the <em>docs</em>
|
|
folder, or <a href="/docs/html/index.html" target="_blank">can be read online</a>.
|
|
</p>
|
|
|
|
<h2>Tests</h2>
|
|
<p>
|
|
We use the <a href="http://pivotal.github.io/jasmine" target="_blank">Jasmine</a> testing framework to write tests.
|
|
Tests can be run in the browser (just open tests.html) or in the
|
|
commandline via ``grunt test``.
|
|
</p>
|
|
|
|
<h2>Credits and Dependencies</h2>
|
|
<p><strong>Converse.js</strong> depends on a few third party libraries, including:</p>
|
|
<ul>
|
|
<li><a href="http://jquery.com" target="_blank">JQuery</a></li>
|
|
<li><a href="http://strophe.im/strophejs" target="_blank">strophe.js</a></li>
|
|
<li><a href="http://backbonejs.org" target="_blank">backbone.js</a></li>
|
|
<li><a href="http://requirejs.org" target="_blank">require.js</a> (optional dependency)</li>
|
|
</ul>
|
|
|
|
<h2>Licence</h2>
|
|
<p><strong>Converse.js</strong> is released under both the <a href="http://opensource.org/licenses/mit-license.php" target="_blank">MIT</a>
|
|
and <a href="http://opensource.org/licenses/GPL-2.0" target="_blank">GPL</a> licenses.</p>
|
|
|
|
<h2>Contact</h2>
|
|
<p>You can follow me on <strong><a href="http://twitter.com/jcopkode" target="_blank">Twitter</a></strong></p>
|
|
<p>My XMPP username is <strong>jc@opkode.im</strong>.</p>
|
|
<p>Send me an email via this <a href="http://opkode.com/contact" target="_blank">contact form</a>.</p>
|
|
</section>
|
|
</div>
|
|
|
|
<!-- FOOTER -->
|
|
<div id="footer_wrap" class="outer">
|
|
<footer class="inner">
|
|
<p class="copyright">Converse.js created by <a href="http://opkode.com" target="_blank">jcbrand</a></p>
|
|
</footer>
|
|
</div>
|
|
|
|
<div id="chatpanel">
|
|
<div id="collective-xmpp-chat-data"></div>
|
|
<div id="toggle-controlbox">
|
|
<a href="#" class="chat toggle-online-users">
|
|
<strong class="conn-feedback">Toggle chat</strong> <strong style="display: none" id="online-count">(0)</strong>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
|
</script>
|
|
<script type="text/javascript">try { var pageTracker = _gat._getTracker("UA-2128260-8"); pageTracker._trackPageview(); } catch(err) {}</script>
|
|
</body>
|
|
<script>
|
|
require(['converse'], function (converse) {
|
|
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,
|
|
debug: true
|
|
});
|
|
});
|
|
</script>
|
|
</html>
|