Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.6.2 - 2021-03-01

Fixed

  • await_join!/2 and await_leave!/2 have been changed to await_join!/3 and await_leave!/3 matching their intended usage
    • the topic parameter has been added which coincides with the API of await_join/3 and await_leave/3

0.6.1 - 2021-02-27

Fixed

0.6.0 - 2021-02-24

Removed

  • Removed dependency on Phoenix

0.5.4 - 2021-02-22

Fixed

  • Slipstream will now gracefully handle failures from :gun.open/3
    • errors will result in an invocation of a client's Slipstream.handle_disconnect/2 callback (if the client is a module) or return an error tuple from await_connect/2 in the case of a synchronous client

0.5.3 - 2021-02-11

Changed

  • Synchronous functions are now grouped under "Synchronous Functions" in the documentation

0.5.2 - 2021-02-10

Fixed

  • The timer reference for the heartbeat interval is now properly matched upon in the connection process
    • this fixes some behavior where the timer reference would not be canceled (with :timer.cancel/1) upon disconnection
    • this has not manifested itself as a bug as far as we are aware, but this fix should properly clean up the timer when it is no longer needed

0.5.1 - 2021-02-08

Added

  • Added an example guide on how to use GenServer operations for a client
  • Added an example on using Slipstream to script interactions with remote Phoenix.Channels

0.5.0 - 2021-02-07

Added

  • Added Slipstream.Socket.update/3 which emulates Phoenix.LiveView.update/3
  • Added an example on the rejoin-after-reconnect pattern for clients which dynamically join topics

0.4.4 - 2021-02-07

Fixed

  • Link to post-cutover-metrics image made absolute

0.4.3 - 2021-02-07

Added

  • Added examples to the documentation
    • "Graceful Startup" and "Repeater-style Client"
  • Added a note about post-cutover performance changes after we (NFIBrokerage) cutover to Slipstream in our stack
    • This is a new section in the "Why :gun?" guide
  • Added documentation on counting the number of Slipstream connection processes to Slipstream.ConnectionSupervisor

0.4.2 - 2021-02-05

Fixed

0.4.1 - 2021-02-04

Fixed

Added

  • Added better documentation on the Slipstream.terminate/2 callback and how to disconnect in it to leave a connection gracefully

0.4.0 - 2021-02-04

Added

  • Added telemetry support for clients
    • see the telemetry guide for more details

0.3.4 - 2021-02-04

Fixed

  • Fixed spelling and grammar mistakes in the implementation guide

0.3.3 - 2021-02-04

Added

  • increased documentation around retry mechanisms
  • added a page on the choice of :gun as the low-level webscket client

0.3.2 - 2021-02-03

Fixed

  • Fixed edge case where the remote server shutting down would not emit a ChannelClosed event
    • this and heartbeats caused the odd :gun_error atom from #12

0.3.1 - 2021-02-03

Fixed

  • The telemetry event for message handles in the connection process should now correctly publish the :events key, not the :event key
  • The telemetry guide now correctly states that the :start_state key holds the connection state for handle-style events

Added

  • Published the connection state at the end of the message handle for handle-type telemetry events in the connection process
    • this is published in the :end_state key

0.3.0 - 2021-02-03

Added

  • :telemetry events are executed for each message handled by the Slipstream.Connection process
    • this should aide in debugging in scenarios in which one wants to see the full event history of a connection

0.2.4 - 2021-02-02

Fixed

  • Emit ChannelClosed event on HTTP close from remote websocket server

0.2.3 - 2021-02-02

Changed

  • docs: the main page now shows the Slipstream module
    • frankly, I just want people to see the Basic Usage section as soon as possible so they get a taste for the library

0.2.2 - 2021-02-01

Fixed

  • The connection now properly disconnects when the server's heartbeat replies timeout with requests

0.2.1 - 2021-02-01

Fixed

  • Connection now correctly emits ChannelClosed events for :gun events which occur when a service's network access is terminated

0.2.0 - 2021-02-01

Added

0.1.4 - 2021-01-31

Fixed

  • Published license to hex

0.1.3 - 2021-01-30

Changed

  • Widened dependency on :gun from ~> 1.3 to ~> 1.0
    • as far as I can tell, there aren't any real changes to the websocket interface, so any of these versions should be OK

0.1.2 - 2021-01-30

Added

  • More documentation
    • including a Basic Usage section with a minimalistic example

0.1.1 - 2021-01-30

Removed

  • Removed direct dependency on :telemetry
    • see #4

0.1.0 - 2021-01-30

Added

  • Initial implementation and initial publish

0.0.0 - 2021-01-22

Added

  • This project was generated by Gaas