Add support for NodeJS websocket clients - thanks to Sylvain Ageneau!
Breaking changes:
- Removing unused dependency on
com.cemerick/url
- thanks Alex!
Breaking changes:
- There are libraries that do AJAX support much better than Chord (in particular, cljs-http) so I’ve dropped the half-baked support in Chord.
- Fressian support has been fixed, but moved to
chord.format.fressian
- thanks again to Jeff Rose :)
Thanks also to Julian Gamble for his help fixing and documenting the example project!
Breaking change: Fressian seems to be broken, so I’ve moved the binary
support out to chord.format.binary
, which users now need to require
if they need binary support.
From a Chord end user’s point of view, no breaking changes.
The ‘parsing/formatting’ implementation has changed, and there is no
longer a wrap-format
multi-method. This was removed in favour of a
ChordFormatter
protocol which is now used for both WebSockets and
AJAX, and is decoupled from the channel implementation used in the
previous WebSockets implementation.
Thanks to Luke Snape, Jeff Rose and Thomas Getgood for their help implementing the various formats.
As a result, Jeff’s ‘chord-fressian’ library, and Luke’s ‘chord-transit’ library, have been merged into Chord - there’s no need to import these separately (and, indeed, they are no longer compatible with this release).
Chord now supports AJAX requests, see the README for more details.
Thanks also to Luke for his help in testing this release.
No breaking changes - bugfix from James Reeves regarding passing
options to with-channel
. See PR 19 for more details.
Thanks James!
The binary type of the channels now defaults to array buffers rather than a DOM blob object.
See PR 17 for more details.
Thanks to Jeff Rose for the PR!
Breaking change: Channel returned from chord.client/ws-ch
now
returns a map; either {:ws-channel ch}
or {:error error}
, rather
than just a channel.
This means that Chord now handles client-side connection and disconnection errors a lot more reliably.
Internally, a lot of code has moved to CLJX where possible, cutting down on a lot of duplication.
Thanks to Charles Duffy for reporting the original issue, his PR, fixing a couple of other bugs, and generally for all of his help with this release.
Added JSON support - you can now pass {:format :json}
or
{:format :json-kw}
to the websocket constructors.
Fixed bug whereby options passed to wrap-websocket-handler
weren’t
being propagated through.
Thanks to Michael Klishin and Yodit Stanton for their PR!
Thanks also to Giuliano Cioffi for fixing a dependency issue in the example project.
Breaking change: defaulting to expecting EDN messages over the channel.
This shouldn’t impact users who use Chord on both the client and the
server (the message over the wire will be "msg"
rather than msg
,
but will be automatically parsed back to a string before the user sees
it).
It will impact users who only use Chord on one end - make sure that
you pass {:format :str}
to continue with the same behaviour as
0.2.2.
Thanks to Henrik Eneroth for the discussion!
No breaking changes. Adding in wrap-websocket-handler
to provide an
macro-less alternative to with-channel
.
Thanks to Malcolm Sparks for the tip!
Thanks also to Rick Richardson for his doc fix.
No breaking changes. Added ability to pass custom buffered channels to use instead of the default unbuffered channels.
Thanks to Timo Sulg (timgluz) for the PR!
Breaking change - CLJS namespace now chord.client
due to recent
versions of the CLJS compiler not liking single-segment namespaces
Thanks to Joshua Griffith (hadronzoo) for the PR!
No breaking changes - added adapter around http-kit for Clojure support.
Initial release.
Thanks to Thomas Omans (eggsby) for (unknowingly!) providing the idea of how to combine two core.async channels together! https://gist.github.com/eggsby/6102537