more README updates

This commit is contained in:
Gered 2016-05-16 19:05:20 -04:00
parent f83cc16c60
commit ced124586a

View file

@ -4,12 +4,12 @@ Cross-browser compatible, real-time, bi-directional
communication between ClojureScript and Clojure using Google Closure
BrowserChannel.
## goog.net.BrowserChannel
From the [Google Closure API][1]:
From the Google Closure API: "A [BrowserChannel][1] simulates a
bidirectional socket over HTTP. It is the basis of the Gmail Chat IM
connections to the server."
The javascript api of BrowserChannel is open-source and part of the
> A BrowserChannel simulates a bidirectional socket over HTTP.
> It is the basis of the Gmail Chat IM connections to the server.
The JavaScript API of BrowserChannel is open-source and part of the
Google Closure library. The server component is not, as is noted in
the Google Closure book ("Closure: The Definitive Guide by Michael Bolin").
@ -17,11 +17,14 @@ the Google Closure book ("Closure: The Definitive Guide by Michael Bolin").
## Usage
This project is comprised of multiple libraries. You'll need to include
two of them in your projects.
[clj-browserchannel][2] is the main library containing both the server- and
client-side functionality you'll use in your web apps.
In order to use the server implementation of BrowserChannel you'll need to
use an async adapter. Currently the provided options are:
use one of the async adapters. Currently the provided options are:
* [clj-browserchannel-jetty-adapter][3]
* [clj-browserchannel-immutant-adapter][4]
@ -35,12 +38,13 @@ following any of the above links to them.
## Demo
The [chat-demo][2] application is an example chat application using a
The [chat-demo][5] application is an example chat application using a
client-side and server-side implementation for BrowserChannel written in
Clojure/ClojureScript. The server component is for BrowserChannel version 8.
The client component serves as a wrapper over `goog.net.BrowserChannel`.
The client component serves as a wrapper over `goog.net.BrowserChannel`
which also currently implements version 8 of the protocol.
[2]: https://github.com/gered/clj-browserchannel/tree/master/chat-demo
[5]: https://github.com/gered/clj-browserchannel/tree/master/chat-demo
The chat-demo web app runs in at least:
@ -48,25 +52,27 @@ The chat-demo web app runs in at least:
* Firefox
* Internet Explorer 5.5+ (!!)
* Android browser
* Others
## Related and alternative frameworks
* Websockets - Websockets solve the same problems as BrowserChannel,
however BrowserChannel works on almost all existing clients.
* socket.io - [socket.io][3] provides a similar api as BrowserChannel on
Websockets ultimately replaces BrowserChannel.
* socket.io - [socket.io][6] provides a similar api as BrowserChannel on
top of many transport protocols, including websockets. BrowserChannel
only has two transport protocols: XHR and forever frames (for IE) in
streaming and non-streaming mode.
[3]: http://socket.io
[6]: http://socket.io
## Other BrowserChannel implementations
Many thanks to these authors, their work is the only open-source
documentation on the BrowserChannel protocol.
* [libevent-browserchannel-server][libevent]
in C++ by Andy Hochhaus - Has the most extensive [documentation][libevent-doc] on the BrowserChannel protocol
* [browserchannel][ruby] in Ruby by David Turnbull
in C++ by Andy Hochhaus - Has the most extensive documentation on the BrowserChannel protocol (dead project?). See the protocol documentation on [archive.org][libevent-doc].
* [browserchannel][ruby] in Ruby by David Turnbull (dead project?)
* [node-browserchannel][node]
in Node.js/Javascript by Joseph Gentle