What is it
Focus is on real time messaging.
So you normally only get messages that are submitted while you
are logged in.
The Klatschbase server is implemented in Common Lisp and currently
requires sbcl, hunchentoot, cl-json, and parenscript. The server
provides a REST API (via HTTP using JSON as data format).
The Klatschbase client is written in Javascript, XHTML, and CSS.
It uses jQuery, webtoolkit.base64, and json2.js.
Documentation
After installing it via ASDF and optionally patching hunchentoot
with the patch for RFC 2047 compliant HTTP authentication character
encoding
(CL-RFC2047) you should set
hunchentoots default encoding to UTF-8:
(defparameter hunchentoot:*default-content-type* "text/html; charset=utf-8")
(defparameter hunchentoot:*hunchentoot-default-external-format*
(flexi-streams:make-external-format :utf8))
If you want to have control over the hunchentoot-server,
start it yourself. E.g., binding it to the loopback device,
port 4242:
(defparameter *hunchentoot*
(hunchentoot:start-server :address "127.0.0.1" :port 4242))
Now start the chat server, using the above started hunchentoot
server and /var/www/klatschbase/static/ as path of klatschbase's
static files:
(defparameter *chat-server*
(klatschbase:start-service
:hunchentoot-server *hunchentoot*
:static-files-path #p"/var/www/klatschbase/static/"))
If you do not define a hunchentoot server, a new one is started.
If you do not define the path of the static files, they will
not be served by hunchentoot. This makes sense for example
when you have hunchentoot running behind an apache or
lighttpd that shall serve the static files.
Alternatives
There is a vast amount of software available for chatting in
all kind of flavours. E.g., IRC is a well established chat
infrastructure.
There are a lot of desktop clients for it. There are also web based
clients. In mibbit, for example,
there is a Java server that relays to an IRC server.