engine-io-1.2.16: Changelog.md
## 1.2.16
### Other Changes
* Increased the upper-bound of `aeson` to < 1.2.
## 1.2.15
* Increased the upper-bound of `aeson`, `vector` and `websockets`.
## 1.2.14
* Increased the upper-bound of `base` and `transformers`.
## 1.2.13
* Increased the upper-bound of `aeson` to allow < 0.12.
## 1.2.12
* Increased the upper-bound of `async` to allow < 2.2.
## 1.2.11
* Increased the upper-bound of aeson to allow < 0.11.
## 1.2.10
* Increase upper-bound of `vector` to < 0.12.
## 1.2.9
* Same changes as 1.2.8, but the 1.2.8 release was formed incorrectly and didn't
compile.
## 1.2.8
* Fixed a bug in the heartbeat monitor. The heartbeat thread exists to ensure
that all connections are still active, so we can detect when a long-polling
connection is closed. However, older versions of `engine-io`, the timer would
be reset whenever *we* sent the client a message, rather than only when we
*received* a message from the client. This meant that for high-traffic
applications, old connections might never be removed, resulting in a memory
leak.
## 1.2.7
* Support decoding payloads coming through XHR polling transport.
Previously, this scenario would lead to HTTP 400 responses.
* Increased upper bound on `either` to < 4.5.
## 1.2.6
* Increased upper-bounds of aeson to < 0.10 and of attoparsec to < 0.14.
## 1.2.5
* Increased the upper-bound of base to allow < 4.9. Now builds on
GHC 7.10.1.
## 1.2.4
* Add a 100ms delay in the WebSocket upgrade process. This matches the
behavior of the reference engine.io implementation (in NodeJS), and
avoids a race condition on slower machines. Without this, it was
possible for the client to experience a up-to-45s delay before
upgrading.
## 1.2.3
* Revert double-encoding introduced in 1.0.1. This now requires that you
use a modern version of the `socket.io` client library. This work was
tested against `socket.io-1.2.1.js`.
## 1.2.2
* We now use `stm-delay` to implement a timeout, if we don't *receive*
network traffic from the client. Under normal operation, the Socket.io
client should ping the server, so an idle session should remain alive.
## 1.2.1
* Fixed a potential race condition in session allocation, where we could
clobber existing session ids.
## 1.2.0
* `ServerAPI`'s `srvParseParseRequestBody` has changed its return type to
`Either String a`. This allows API providers to catch exceptions that may
happen when attempting to perform this parse.
## 1.1.2
* 1.1.1 accidently removed `websockets` from the list of available upgrades.
This release reverts that change.
## 1.1.1
* Long-polling connections now emit a `ping` message after 45 seconds, if no
data is written to them.
* There is a new `dupRawReader` function, which lets you create a read-only
stream of raw communication with a socket.
## 1.1.0
* The `ServerAPI` functions `srvWriteBuilder`, `srvSetContentType` and
`srvSetResponseCode` have been merged into a single function:
`srvTerminateWithResponse`. This should allow `ServerAPI` to be provided for
Yesod.
Thanks to Tim Baumann (@timjb) for this change.
## 1.0.2
* The `ping` thread spawned by `websockets` is now disabled, as it has been
observed that these pings are using invalid sockets. Specifically, see
https://github.com/lpsmith/postgresql-simple/issues/117.
## 1.0.1
* Purposefully double-encode websocket traffic. Unfortunately this is necessary
due to https://github.com/Automattic/engine.io-client/issues/322. When a new
version of `engine.io` is released upstream, I will revert this.
## 1.0.0
* Initial release