Connection: now it automatically calls close() method when it receives a close frame from the peer. (RFC6455 5.5.1.)
Connection: now "finish" callbacks are called only once, like "next_message" callbacks. I think this is more intuitive behavior.
Connection: now it automatically shuts down the socket on "finish" event (on_eof or on_error). This is because sometimes the socket remains half-open (writable) when the peer closes it, leading to potential dead lock on the peer side. By explicitly shuts down the socket, the Connection always sends back EOF signal to the peer when it receives EOF.
Connection: now it refuses to send/receive frames after it sends/receives a close frame. (RFC6455 1.4, 5.5.1)
done_testing is not necessary in subtests.
testlib::Connection: add create_connection_and_handle() method for refactoring.
Connection: now it aborts the connection when it receives a too huge message. The size limit is imposed by Protocol::WebSocket::Frame (RFC6455 10.4)
Connection: now it responds to a ping frame with a pong frame of the same payload (RFC6455 5.5.2, 5.5.3)
Connection: Add "masked" attribute.
minor revision. comment out with single #
Client: Connection should set masked => true (RFC6455 5.3, 6.1). Some existing tests failed due to a bug in Protocol::WebSocket::Frame, so Protocol::WebSocket 0.15 is now required.
Connection: documentation update. AnyEvent::WebSocket::Server already exists.
Connection: Bug (regression) fix: make sure $self is not destroyed while executing callbacks. Otherwise the weakened $self would suddenly become undef, causing an exception in subsequent method calls.
require Protocol::WebSocket 0.15 for bugfix
rename t/conn_* to t/connection_*
silence annoying "Too late to run CHECK block" warnings
update Changes
v0.19

  [AE::WS::Connection enhacements (thanks Toshio Ito)]
  - Automatically respond to a close frame with a close frame (RFC6455 5.5.1)
  - Make sure "finish" callbacks are called only once.
  - Automatically shutdown the socket on "finish" event. This makes sure EOF signal is sent to the peer.
  - Refuse to send/receive frames after it sends/receives a close frame. (RFC6455 1.4, 5.5.1)
  - Abort the connection when it receives a too huge message. The size limit is imposed by Protocol::WebSocket::Frame (RFC6455 10.4)
  - Automatically respond to a ping frame with a pong frame of the same payload (RFC6455 5.5.2, 5.5.3)
  - Add "masked" attribute. If set, outgoing frames are masked.
  - Client's Connection now sets masked => true (RFC6455 5.3, 6.1).
  - documentation