Changes for version 0.1

  • MINOR BREAKING: All messages are now Net::WebSocket::Message instances; the ::text and ::binary subclasses are removed. They weren’t useful, and they complicated support for custom frame/message types.
  • Fix frame RSV methods, and add tests.
  • Fix Endpoint auto-response to close frames to use the correct masking.
  • Use exception objects for remaining server handshake problems.
  • Make Sec-WebSocket-Key validation more accurate.
  • New, separate exception type for when a data frame arrives after an unfinished message.
  • is_control_frame() method is renamed to is_control(). (The old name is also preserved for legacy compatibility.) Message objects have the same method, so now frames and messages are more nearly interchangeable.
  • Lots of inert code is now removed.
  • Lots of tests added, especially against Endpoint and Handshake.
  • Ping messages now count from 1 rather than 0.
  • This file is now in chronological-descending order.

Documentation

Modules

WebSocket in Perl
HTTP utilities for Net::WebSocket
logic for HTTP::Request & HTTP::Response
base class for handshake objects
WebSocket extension handshake
WebSocket per-message compression extensions
Base class for PMCE data modules.
WebSocket’s permessage-deflate extension
permessage-deflate for a client
permessage-deflate for a server
Parse WebSocket from a filehandle
Stream a WebSocket message easily

Provides

in demo/lib/NWDemo.pm
in lib/Net/WebSocket/Base/ControlFrame.pm
in lib/Net/WebSocket/Base/DataFrame.pm
in lib/Net/WebSocket/Base/ReadString.pm
in lib/Net/WebSocket/Base/Typed.pm
in lib/Net/WebSocket/Constants.pm
in lib/Net/WebSocket/Endpoint/Client.pm
in lib/Net/WebSocket/Frame/continuation.pm
in lib/Net/WebSocket/Frame/ping.pm
in lib/Net/WebSocket/Frame/pong.pm
in lib/Net/WebSocket/FrameTypeName.pm
in lib/Net/WebSocket/Mask.pm
in lib/Net/WebSocket/Masker/Client.pm
in lib/Net/WebSocket/Masker/Server.pm
in lib/Net/WebSocket/Message.pm
in lib/Net/WebSocket/PMCE/deflate/Constants.pm
in lib/Net/WebSocket/PMCE/deflate/Data.pm
in lib/Net/WebSocket/PMCE/deflate/Data/Client.pm
in lib/Net/WebSocket/PMCE/deflate/Data/Server.pm
in lib/Net/WebSocket/PingStore.pm
in lib/Net/WebSocket/Streamer/Client.pm
in lib/Net/WebSocket/X.pm
in lib/Net/WebSocket/X/BadAccept.pm
in lib/Net/WebSocket/X/BadArg.pm
in lib/Net/WebSocket/X/BadHTTPMethod.pm
in lib/Net/WebSocket/X/BadHTTPStatus.pm
in lib/Net/WebSocket/X/BadHeader.pm
in lib/Net/WebSocket/X/BadRequestProtocol.pm
in lib/Net/WebSocket/X/BadToken.pm
in lib/Net/WebSocket/X/Base.pm
in lib/Net/WebSocket/X/ControlPayloadTooLong.pm
in lib/Net/WebSocket/X/DuplicateHeader.pm
in lib/Net/WebSocket/X/EndpointAlreadyClosed.pm
in lib/Net/WebSocket/X/MissingHeaders.pm
in lib/Net/WebSocket/X/ReceivedBadControlFrame.pm
in lib/Net/WebSocket/X/ReceivedBadDataFrame.pm
in lib/Net/WebSocket/X/ReceivedClose.pm
in lib/Net/WebSocket/X/UnfinishedStream.pm
in lib/Net/WebSocket/X/UnknownExtension.pm
in lib/Net/WebSocket/X/UnknownSubprotocol.pm
in lib/Net/WebSocket/X/UnsupportedProtocolVersion.pm