For questions regarding the Sente web socket Clojure(Script) library.
Sente is a library in/for Clojure and ClojureScript for implementing websocket communication with AJAX fallback.
Features
- Bidirectional a/sync comms over both WebSockets and Ajax (auto-fallback)
- It just works: auto keep-alives, buffering, protocol selection, reconnects
- Efficient design incl. transparent event batching for low-bandwidth use, even over Ajax
- Send arbitrary Clojure vals over edn or Transit (JSON, MessagePack, etc.)
- Tiny API: make-channel-socket! and you're good to go
- Automatic, sensible support for users connected with multiple clients and/or devices simultaneously
- Realtime info on which users are connected over which protocols (v0.10.0+)
- Flexible model: use it anywhere you'd use WebSockets/Ajax/Socket.IO, etc.
- Standard Ring security model: auth as you like, HTTPS when available, CSRF support, etc.
- Fully documented, with examples
- Small codebase: ~1.5k lines for the entire client+server implementation
- Supported servers: http-kit, Immutant v2+, nginx-clojure, node.js, Aleph
For more information: https://github.com/ptaoussanis/sente