All Versions
10
Latest Version
Avg Release Cycle
74 days
Latest Release
-
Changelog History
Changelog History
-
v0.4.3 Changes
โจ Enhancements
- โ Added
ssl_options
documentation- Also support for dialyzer analysis
๐ Bug Fixes
- Properly hand-off when establishing a connection using
:ssl
- Before we could miss messages that were sent before hand-off
- ๐ Handle large but incomplete
:continuation
frames.
- โ Added
-
v0.4.2 Changes
December 02, 2018โจ Enhancements
- โ Added
ssl_options
toWebSockex.Conn
struct.- Documentation Pending...
๐ Bug Fixes
- ๐ Fix
pong
frame not being a correct return type in spec - ๐ Fix bare
ping
andpong
frames in spec- When there is no associated payload for their frame types
- ๐ Fix handling SSL socket closings during the
close_loop
- โ Add types and documentation for processes named with
:via
and:global
- ๐ Fixed a crash when replying to a closed socket
- โ Added
-
v0.4.1 Changes
January 22, 2018โจ Enhancements
- ๐ Allow
:via
and:global
tuples for named registration. This includes handling forcast/2
andsend_frame/2
. - Add access to response headers during
handle_connect/2
viaConn.resp_headers
. - โ Add
Conn.parse_url/1
to handle url to URI conversion. - ๐ Allow
Conn.new/2
to use a url string instead of aURI
struct. - Automatically add a "/" path to a pathless url.
- The HTTP request will break without a valid path!
- โ Add
child_spec
definitions for Elixir 1.5+- Or any version that exports
Supervisor.child_spec/2
- Or any version that exports
- ๐ Some documentation tweaks
๐ Bug Fixes
- No longer invoke
handle_disconnect
if there is reason to exit from invoking a callback. (e.g. an exception was raised) - Properly handle unexpected SSL socket termination.
- This seems pretty important, but I don't know...
- Return a descriptive error when trying to use
send_frame/2
in a callback.
- ๐ Allow
-
v0.4.0 Changes
July 12, 2017๐ฅ Breaking Changes
- ๐
send_frame/2
is now synchronous and returns an error when connection is opening or closing.
โจ Enhancements
- โ Added debug printing for the
:sys
module. - Rework
Conn.new
to accept other protocols. - โ Added an
InvalidFrameError
for frames unrecognized byFrame.encode_frame
. - Go through the disconnect cycle when there's an error while with the
{:reply, frame, state}
callback response. - Send a close frame with the close code
1011
when there is an unexpected error. (Like anException
in the middle of a callback) - โ Add a more specific error when the
:websockex
application hasn't been started yet. - โ Added a
:name
options for local registration.
๐ Bug Fixes
- ๐ Fix a couple of places where the call stack wasn't being properly tail-call optimized.
- ๐
-
v0.3.1 Changes
June 23, 2017โจ Enhancements
- ๐ Handle system messages and parent exits while closing the connection.
- The output from
:sys.get_status
didn't look pretty in:observer
now it does! format_status/2
now an optional callback.
๐ Bug Fixes
- SSL frames sent right after connecting will now be handled instead of being left in a dead Task mailbox.
- ๐ Fixed some places where
dialyzer
told me I had my specs screwed up.
-
v0.3.0 Changes
June 17, 2017๐ฅ Breaking Changes
- The parameters for the
handle_connect/2
callback have been reversed. The order is now(conn, state)
.
โจ Enhancements
- โ Added initial connection timeouts.
(
:socket_connect_timeout
and:socket_recv_timeout
)- Can be used as
start
orstart_link
option or as aConn.new
option. :socket_connect_timeout
- The timeout for opening a TCP connection.:socket_recv_timeout
- The timeout for receiving a HTTP response header.
- Can be used as
start
andstart_link
can now take aConn
struct in place of a url.- โ Added the ability to handle system messages while opening a connection.
- โ Added the ability to handle parent exit messages while opening a connection.
- Improve
:sys.get_status
,:sys.get_state
,:sys.replace_state
functions.- These are undocumented, but are meant primarly for debugging.
๐ Bug Fixes
- Ensure
terminate/2
callback is called consistently. - ๐ฆ Ensure when termination when a parent exit signal is received.
- Add the
system_code_change
function so that thecode_change
callback is actually used.
- The parameters for the
-
v0.2.0 Changes
June 03, 2017Major Changes
- ๐ Moved all the
WebSockex.Client
module functionality into the baseWebSockex
module. - Roll
handle_connect_failure
functionality intohandle_disconnect
. - Roll
init
functionality intohandle_connect
Detailed Changes
- Roll
init
functionality intohandle_connect
handle_connect
will be invoked upon establishing any connection, i.e., the intial connection and when reconnecting.- The
init
callback is removed entirely.
- ๐ Moved all the
WebSockex.Client
module functionality into the baseWebSockex
module.- Changed the
Application
module toWebSockex.Application
.
- Changed the
- โ Add
WebSockex.start
for non-linked processes. - โ Add
async
option tostart
andstart_link
. - Roll
handle_connect_failure
functionality intohandle_disconnect
.- The first parameter of
handle_disconnect
is now a map with the keys::reason
,:conn
, and:attempt_number
. handle_disconnect
now has another return option for when wanted to reconnect with different URI options or headers:{:reconnect, new_conn, new_state}
- Added the
:handle_initial_conn_failure
option to the options forstart
andstart_link
that will allowhandle_disconnect
to be called if we can establish a connection during those functions. - Removed
handle_connect_failure
entirely.
- The first parameter of
- ๐ Moved all the
-
v0.1.3 Changes
May 17, 2017WebSockex.start_link
will no longer cause the calling process to exit on
connection failure and will return a proper error tuple instead.- ๐ Change
WebSockex.Conn.RequestError
toWebSockex.RequestError
. - Add
handle_connect_failure
to be invoked after initiating a connection
๐ fails. Fixes #5
-
v0.1.2 Changes
April 21, 2017- Rework how disconnects are handled which should improve the
handle_disconnect
callback reliability.
- Rework how disconnects are handled which should improve the
-
v0.1.1
April 17, 2017