Releases: taoensso/sente
v1.9.0 - 2016 Jul 6
[com.taoensso/sente "1.9.0"]This is a particularly substantial release focused on design refactoring, and a number of new features.
- BREAKING: Client-side event changed:
[:chsk/state <new-state-map>]->[:chsk/state [<old-state-map> <new-state-map>]] - BREAKING:
:ws-kalive-ms,:lp-timeout-msopts moved from client-side to server-sidemake-channel-socket!fn - BREAKING: Drop experimental (and rarely used) flexi packer
- New: Add Aleph server adapter (@sorenmacbeth) [#236]
- New: Client-side
:chsk/stateevents may now contain:last-ws-error,:last-ws-closekeys [#214] - New: Add support for more flexible conn-type upgrade/downgrade [#201]
- New: Add new goodies to reference example
- Impl: Allow server to garbage collect long-polling conns [#150 #159]
- Impl: Server-side ping to help gc non-terminating WebSocket conns [#230]
- Impl: Servers now drive WebSocket identification (more robust, flexible)
- Impl: Clojure-side Transit performance optimizations [#161]
- Fix: Fixed faulty Nodejs Ajax adapter behaviour
- Fix: Fix for spurious Firefox unload->onclose calls [#224]
- Fix: Clear the keep alive timer in
chsk-disconnect![#221 @theasp]
v1.8.1 - 2016 Mar 4
[com.taoensso/sente "1.8.1"]- Hotfix: add missing
event-msg?alias
v1.8.0 - 2016 Feb 16
This is a major non-breaking feature release, enjoy! :-)
- Change:
chsk-reconnect!calls now always attempt reconnection immediately [#167] - Change: Ref example has been refactored, simplified
- Change: Ref example has been split into client+server namespaces [#192 @theasp]
- New: Added server adapters for Node.js (generic, Express, Dog Fort) [#194 @theasp @whamtet]
- New: Added official
ajax-litealias (Sente Ajax req util) - New: Added "carpet" example [#187 @ebellani]
- New: CSRF token header is now compatible with ring.middleware defaults [#198 @theasp]
- Impl.: Decoupled notion that clj<=>server, cljs<=>client [thanks to @theasp for assistance]
- Impl.: Refactor web-server adapter interfaces
[com.taoensso/sente "1.8.0"]v1.7.0 - 2015 Dec 8
As v1.7.0-RC1 with some updated dependencies, improved reference example
[com.taoensso/sente "1.7.0"]v1.7.0-RC1 - 2015 Sep 28
This is a significant non-breaking feature release. Includes an important fix for Immutant users.
- New: add
nginx-clojureserver adapter [#160 @xfeep] - New: add
:error-handleroption to standard chsk routers - New:
make-channel-socket!now accepts an optional :params map [#158 #135 @danielcompton] - New: include
:client-idwith Ajax long-polling requests [#155 @akhudek] - New:
cb-error?convenience fn =(complement cb-success?) - Fix: Immutant v2.1.0+ adapter now supports timeouts to prevent lp socket leaks [#150 @tobias]
[com.taoensso/sente "1.7.0-RC1"]v1.6.0 - 2015 Aug 7
This is a significant maintenance+feature release which MAY BE BREAKING due to a mandatory dependency bump to Timbre v4 (see note 1 for details).
NB: Please remember to always run
lein cleanafter updating your Sente dependency. Failure to do this can lead to hard-to-diagnose failures (not fun).
- BREAKING: switch to Timbre v4 for cross-platform logging [note 1]
- DEPRECATED:
chsk-url-fn, make cross-domain chsks easier to configure [#50 #136] - Implementation: refactor default chsk-router
- New: add :uid to ev-msg's handled by Sente server [@danielcompton #147]
- New: add support for Transit packer opts [@estsauver #145]
- New: add option to leave :chsk/recv events unwrapped [#151]
- New: add client-side backoff opts [#125]
- Fix: switch to encore edn reader/writer (fix issue with printing large data structures under REPL)
- Ref example: add run command [@estsauver #144]
[com.taoensso/sente "1.6.0"]Notes
[1] Please see https://github.com/ptaoussanis/timbre/releases/tag/v4.0.0 for Timbre v4's migration checklist. Sorry for the hassle! This one-off change allows Sente to inherit all of Timbre's logging goodness (full logging config, ns filtering, production logging call elision, etc.). Migration usually consists of a 1 or 2 line change if you're not using custom Timbre appenders.
v1.5.0 - 2015 Jun 11
v1.4.1 - 2015 Mar 11
Trivial, non-breaking release that adds a pair of optional web-adapter aliases to help make examples a little simpler.
[com.taoensso/sente "1.4.1"]v1.4.0 - 2015 Mar 9
This is a major BREAKING release. Biggest change is added support for web servers besides http-kit (only Immutant for now). A big thanks to @tobias for his assistance with the Immutant support.
- BREAK: added support for web servers besides http-kit (see migration instructions) [@tobias #2]
- BREAK: removed support for
niluser-id broadcasts (previously deprecated in v1.3.0) [#85] [1] - Fix: temporary workaround for core.async router error-catching issues [@shaharz #97]
- New: throw clear compile-time exception on encore dependency issues
- New: enable clients to distinguish between auto/manual reconnects [@sritchie #105] [2]
- New: allow arbitrary user-provided handshake data with :chsk/handshake events [@whodidthis #110 #111] [3]
- Ref example: some clarifications re: how to authenticate users
Notes
[1]: Server-side (chsk-send! <user-id> <event>) calls used to broadcast to all nil-uid users when <user-id> was nil. Now you must use the special :sente/all-users-without-uid keyword for these cases. The new behaviour helps prevent unintentional broadcasting.
[2]: :chsk/state event data now contains :requested-reconnect? val.
[3]: Server-side make-channel-socket! fn now takes an optional :handshake-data-fn (fn [ring-req]) opt and client-side's ch-recv now receives [:chsk/handshake [<?uid> <?csrf-token> <?handshake-data>]] events.
MIGRATION INSTRUCTIONS (from any version < v1.4.0)
- Http-kit is no longer an automatic Sente dependency. To continue using http-kit, add
[http-kit "2.1.19"]to your project.clj:dependencies. - Your Clojure-side
make-channel-socket!call must now take a web server adapter as first argument. To continue using http-kit, add[taoensso.sente.server-adapters.http-kit]to your Clojure-side ns form's:requireentries and passtaoensso.sente.server-adapters.http-kit/http-kit-adapteras the first arg tomake-channel-socket!.
So:
[http-kit "2.1.19"] ; <--- Add to project.clj :dependencies
(ns my-clj-ns
(:require
;; Other stuff
[taoensso.sente.server-adapters.http-kit] ; <--- Add this entry
))
;; (sente/make-channel-socket! <opts-map>) ; Old Clojure-side chsk constructor
(sente/make-channel-socket!
taoensso.sente.server-adapters.http-kit/http-kit-adapter ; <--- Add this arg
<opts-map) ; NEW Clojure-side chsk constructorThis change is a once-off nuisance that'll allow us the freedom of supporting a wide range of web servers in the future. Interested in a web server besides http-kit or Immutant? Am now welcoming PRs to support additional web servers.
Finally, please see the updated reference example project for instructions on switching to an alternative web server like Immutant.
/ Peter Taoussanis
[com.taoensso/sente "1.4.0"]v1.3.0 / 2015 Jan 17
This is a non-breaking maintenance release focused on general housekeeping + on adding some user-id flexibility.
- DEPRECATED [#85]: Server->user broadcasts should now use
:sente/all-users-without-uidinstead ofniluid when intending to broadcast to users without a user id. The new behaviour is less accident prone. - CHANGE [#84, #95]: Improve error reporting in the case of missing Ring middleware.
- FIX [#94]: ClojureScript dependency is now
:providedto keep it from being unnecessarily pulled into JARs, etc (@zentrope). - NEW [#82]: Server-side
:user-id-fn's Ring request now includes a:client-idarg provided by clients. - Various doc+example improvements.
[com.taoensso/sente "1.3.0"]