baumhaus-tagebuch
We have a demo deployed on IPFS. It uses a websocket connection to our test server on topiq.es. This is a simple web-chat application which leverages replikativ for its state management.
chat42 consists of two parts, a client written with ClojureScript and om-next (react) that compiles into efficient Javascript, and a server written in Clojure that brokers communication between peers over a websocket. The server will be available for node.js soon and is only necessary to ensure a communication channel.
There is also a react native client.
It was initially created as a presentation for ClojureScript in our local JavaScript meetup.
Usage
You need to have Leiningen installed.
Client development
Just run figwheel and edit core.cljs
as needed. If the replikativ parts are un clear, also have a look at the API walkthrough.
lein figwheel
This allows you to develop the client in an offline mode.
Server peer
If you want to persist and distribute the state, run the server with:
lein run
The server uses an in-memory backend to allow quick resets, if you want to persist the data on disk, use a filestore by commenting out the mem-store instead:
(<?? S #_(new-mem-store) (new-fs-store "/tmp/chat42"))
The web clients will automatically connect to this peer on localhost
. You can
now open two tabs and the two chat clients will communicate over the server and
update instantly.
If you want to open the socket on a broader interface, change the uri string. This is necessary if you want to connect clients from the local network or the internet.
If you have any problems, questions or suggestions, please join our gitter chat.
License
Copyright © 2016-2017 Konrad Kühne, Christian Weilbach
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.