- Notifications
You must be signed in to change notification settings - Fork27
vti/protocol-websocket
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Protocol::WebSocket - WebSocket protocol
# Server sidemy $hs = Protocol::WebSocket::Handshake::Server->new;$hs->parse('some data from the client');$hs->is_done; # tells us when handshake is donemy $frame = $hs->build_frame;$frame->append('some data from the client');while (defined(my $message = $frame->next)) { if ($frame->is_close) { # Send close frame back send( $hs->build_frame( type => 'close', version => $version )->to_bytes ); return; } # We got a message!}
Client/server WebSocket message and frame parser/constructor. This module doesnot provide a WebSocket server or client, but is made for using in http serversor clients to provide WebSocket support.
Protocol::WebSocket supports the following WebSocket protocol versions:
draft-ietf-hybi-17 (latest)draft-ietf-hybi-10draft-ietf-hybi-00 (with HAProxy support)draft-hixie-75
By default the latest version is used. The WebSocket version is detectedautomatically on the server side. On the client side you have set aversion
attribute to an appropriate value.
Protocol::WebSocket itself does not contain any code and cannot be useddirectly. Instead the following modules should be used:
Server helper class.
Client helper class.
Server handshake parser and constructor.
Client handshake parser and constructor.
WebSocket frame parser and constructor.
Low level WebSocket request parser and constructor.
Low level WebSocket response parser and constructor.
Low level WebSocket url parser and constructor.
For examples on how to useProtocol::WebSocket with various event loops seeexamples/
directory in the distribution.
In order of appearance:
Paul "LeoNerd" Evans
Jon Gentle
Lee Aylward
Chia-liang Kao
Atomer Ju
Chuck Bredestege
Matthew Lien (BlueT)
Joao Orui
Toshio Ito (debug-ito)
Neil Bowers
Michal Špaček
Graham Ollis
Anton Petrusevich
Eric Wastl
Greg Kennedy
Viacheslav Tykhanovskyi,vti@cpan.org
.
Copyright (C) 2010-2018, Viacheslav Tykhanovskyi.
This program is free software, you can redistribute it and/or modify it underthe same terms as Perl 5.10.