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 communication between ClojureScript and Clojure using Google Closure
BrowserChannel. BrowserChannel.
## goog.net.BrowserChannel From the [Google Closure API][1]:
From the Google Closure API: "A [BrowserChannel][1] simulates a > A BrowserChannel simulates a bidirectional socket over HTTP.
bidirectional socket over HTTP. It is the basis of the Gmail Chat IM > It is the basis of the Gmail Chat IM connections to the server.
connections to the server."
The javascript api of BrowserChannel is open-source and part of the The JavaScript API of BrowserChannel is open-source and part of the
Google Closure library. The server component is not, as is noted in Google Closure library. The server component is not, as is noted in
the Google Closure book ("Closure: The Definitive Guide by Michael Bolin"). 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 ## 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 [clj-browserchannel][2] is the main library containing both the server- and
client-side functionality you'll use in your web apps. client-side functionality you'll use in your web apps.
In order to use the server implementation of BrowserChannel you'll need to 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-jetty-adapter][3]
* [clj-browserchannel-immutant-adapter][4] * [clj-browserchannel-immutant-adapter][4]
@ -35,12 +38,13 @@ following any of the above links to them.
## Demo ## 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 client-side and server-side implementation for BrowserChannel written in
Clojure/ClojureScript. The server component is for BrowserChannel version 8. 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: The chat-demo web app runs in at least:
@ -48,25 +52,27 @@ The chat-demo web app runs in at least:
* Firefox * Firefox
* Internet Explorer 5.5+ (!!) * Internet Explorer 5.5+ (!!)
* Android browser * Android browser
* Others
## Related and alternative frameworks ## Related and alternative frameworks
* Websockets - Websockets solve the same problems as BrowserChannel, * Websockets - Websockets solve the same problems as BrowserChannel,
however BrowserChannel works on almost all existing clients. 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 top of many transport protocols, including websockets. BrowserChannel
only has two transport protocols: XHR and forever frames (for IE) in only has two transport protocols: XHR and forever frames (for IE) in
streaming and non-streaming mode. streaming and non-streaming mode.
[3]: http://socket.io [6]: http://socket.io
## Other BrowserChannel implementations ## Other BrowserChannel implementations
Many thanks to these authors, their work is the only open-source Many thanks to these authors, their work is the only open-source
documentation on the BrowserChannel protocol. documentation on the BrowserChannel protocol.
* [libevent-browserchannel-server][libevent] * [libevent-browserchannel-server][libevent]
in C++ by Andy Hochhaus - Has the most extensive [documentation][libevent-doc] on the BrowserChannel protocol 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 * [browserchannel][ruby] in Ruby by David Turnbull (dead project?)
* [node-browserchannel][node] * [node-browserchannel][node]
in Node.js/Javascript by Joseph Gentle in Node.js/Javascript by Joseph Gentle