- Increased the upper-bound of
aeson
to < 1.6. - Increased the upper-bound of
base64-bytestring
to < 1.3. - Increased the upper-bound of
base
to < 4.15. - Increased the upper-bound of
bytestring
to < 0.12. - Increased the upper-bound of
mwc-random
to < 0.16.
- Increased the upper-bound of
base
to < 4.13. - Increased the upper-bound of
stm
to < 2.6.
- Increased the upper-bound of
aeson
to < 1.5. - Increased the upper-bound of
base
to < 4.12. - Increased the upper-bound of
errors
to < 2.4. - Increased the upper-bound of
free
to < 5.2. - Increased the upper-bound of
mwc-random
to < 0.15.
- Increased the upper-bound of
aeson
to < 1.4. - Increased the upper-bound of
async
to < 2.3. - Increased the upper-bound of
free
to < 5.1.
- Increased the lower-bound of
websockets
to 0.11.
- Switch from
either
toerrors
.
- Increased the upper-bound of
aeson
to < 1.3. - Increased the upper-bound of
websockets
to < 0.13.
- Increased the upper-bound of
aeson
to < 1.2.
- Increased the upper-bound of
aeson
,vector
andwebsockets
.
- Increased the upper-bound of
base
andtransformers
.
- Increased the upper-bound of
aeson
to allow < 0.12.
- Increased the upper-bound of
async
to allow < 2.2.
- Increased the upper-bound of aeson to allow < 0.11.
- Increase upper-bound of
vector
to < 0.12.
- Same changes as 1.2.8, but the 1.2.8 release was formed incorrectly and didn't compile.
- 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.
- 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.
- Increased upper-bounds of aeson to < 0.10 and of attoparsec to < 0.14.
- Increased the upper-bound of base to allow < 4.9. Now builds on GHC 7.10.1.
- 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.
- 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 againstsocket.io-1.2.1.js
.
- 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.
- Fixed a potential race condition in session allocation, where we could clobber existing session ids.
ServerAPI
'ssrvParseParseRequestBody
has changed its return type toEither String a
. This allows API providers to catch exceptions that may happen when attempting to perform this parse.
- 1.1.1 accidently removed
websockets
from the list of available upgrades. This release reverts that change.
-
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.
-
The
ServerAPI
functionssrvWriteBuilder
,srvSetContentType
andsrvSetResponseCode
have been merged into a single function:srvTerminateWithResponse
. This should allowServerAPI
to be provided for Yesod.Thanks to Tim Baumann (@timjb) for this change.
- The
ping
thread spawned bywebsockets
is now disabled, as it has been observed that these pings are using invalid sockets. Specifically, see lpsmith/postgresql-simple#117.
- Purposefully double-encode websocket traffic. Unfortunately this is necessary
due to socketio/engine.io-client#322. When a new
version of
engine.io
is released upstream, I will revert this.
- Initial release