Skip to content

Releases: taoensso/sente

v1.9.0 - 2016 Jul 6

06 Jul 09:49

Choose a tag to compare

[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-ms opts moved from client-side to server-side make-channel-socket! fn
  • BREAKING: Drop experimental (and rarely used) flexi packer
  • New: Add Aleph server adapter (@sorenmacbeth) [#236]
  • New: Client-side :chsk/state events may now contain :last-ws-error, :last-ws-close keys [#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

04 Mar 08:39

Choose a tag to compare

[com.taoensso/sente "1.8.1"]
  • Hotfix: add missing event-msg? alias

v1.8.0 - 2016 Feb 16

26 Feb 09:12

Choose a tag to compare

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-lite alias (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

08 Dec 11:09

Choose a tag to compare

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

03 Sep 14:18

Choose a tag to compare

Pre-release

This is a significant non-breaking feature release. Includes an important fix for Immutant users.

  • New: add nginx-clojure server adapter [#160 @xfeep]
  • New: add :error-handler option to standard chsk routers
  • New: make-channel-socket! now accepts an optional :params map [#158 #135 @danielcompton]
  • New: include :client-id with 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

07 Aug 16:54

Choose a tag to compare

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 clean after 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

11 Jun 09:47

Choose a tag to compare

This is a non-breaking maintenance release

  • New: support Ajax CORS via new :with-credentials? opt [#130 @bplatz]
  • Fix: bad missing-middleware error logging call format
  • Implementation: update dependencies
[com.taoensso/sente "1.5.0"]

v1.4.1 - 2015 Mar 11

11 Mar 09:04

Choose a tag to compare

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

01 Mar 14:33

Choose a tag to compare

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 nil user-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)

  1. 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.
  2. 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 :require entries and pass taoensso.sente.server-adapters.http-kit/http-kit-adapter as the first arg to make-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 constructor

This 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

11 Dec 11:55

Choose a tag to compare

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-uid instead of nil uid 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 :provided to keep it from being unnecessarily pulled into JARs, etc (@zentrope).
  • NEW [#82]: Server-side :user-id-fn's Ring request now includes a :client-id arg provided by clients.
  • Various doc+example improvements.
[com.taoensso/sente "1.3.0"]