@lpinca lpinca released this May 30, 2018 · 16 commits to master since this release

Assets 2

We've updated the SockJS client-side library to version 1.1.5.

@lpinca lpinca released this May 23, 2018 · 19 commits to master since this release

Assets 2

We've updated the uws transformer to make it properly handle options passed via options.transport.

@lpinca lpinca released this Apr 16, 2018 · 30 commits to master since this release

Assets 2

We've updated the uws transformer to make it support compression and we've changed the default spark id generator to nanoid.

@lpinca lpinca released this Jan 10, 2018 · 51 commits to master since this release

Assets 2

We've removed the TypeScript type definitions as they were broken and unmaintained.

@lpinca lpinca released this Jul 23, 2017 · 68 commits to master since this release

Assets 2

In this release, we've added the ability to use a custom ID generator for the Spark objects.

A custom spark ID generator can be provided by setting the idGenerator option to a function that returns a unique string each time it is invoked.

const primus = new Primus(server, { idGenerator: () => uuid() });

Thanks to @nanowizard for suggesting and implementing (#601) this useful feature.

@lpinca lpinca released this May 17, 2017 · 80 commits to master since this release

Assets 2

In this release, we made some small improvements and squashed some bugs which had been reported.

  • Fixed a bug that prevented the process from exiting when using Primus.createSocket().
  • Fixed some issues in the TypeScript definitions.
  • Added ability to modify the cache busting parameter from a listener of the outgoing::url event.
  • Fixed compatibility with ws@3.

@lpinca lpinca released this Apr 27, 2017 · 91 commits to master since this release

Assets 2

We've updated the uws transformer to make it work with uws@0.14.3.

@lpinca lpinca released this Mar 24, 2017 · 101 commits to master since this release

Assets 2

In this release we have reversed the direction of ping/pong messages. Pings are now sent from server to client to work around issues generated by throttled timers on modern browsers1.

The following diagram should give you an idea of how the new heartbeat system works.

     client will disconnect
       if not recv within
          `pingTimeout`

     primus:pong:{timestamp}
    +----------------------+
    |                      |
+---v----+            +---------+
| server |            |  client |
+--------+            +----^----+
    |                      |
    +----------------------+
     primus:ping:{timestamp}

      sent at `pingInterval`
      server will disconnect
      if no response since
           last ping

As you might expect there are some breaking changes.

  • The latency attribute on the client is gone.
  • The server-side timeout option has been replaced with a new option called pingInterval.
  • The client-side ping and pong options have been replaced with a new option called pingTimeout.

A special thanks goes to @STRML who assisted us in making this release possible.

1: http://blog.strml.net/2017/01/chrome-56-now-aggressively-throttles.html

@lpinca lpinca released this Feb 22, 2017 · 118 commits to master since this release

Assets 2

We've updated the Engine.IO client-side library to version 2.0.2 and added the ability to reset the spark heartbeat via protocol-level pings in the uws transformer.

@lpinca lpinca released this Jan 30, 2017 · 130 commits to master since this release

Assets 2

Two notable changes in this release:

  • We've updated the Engine.IO client-side library to version 2.0.1.
  • We've updated the SockJS client-side library to version 1.1.2.