%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.26 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/proc/self/root/usr/share/webmin/vendor_perl/Protocol/ |
Upload File : |
package Protocol::WebSocket;
use strict;
use warnings;
our $VERSION = '0.26';
use Protocol::WebSocket::Frame;
use Protocol::WebSocket::Handshake::Client;
use Protocol::WebSocket::Handshake::Server;
use Protocol::WebSocket::URL;
1;
__END__
=encoding UTF-8
=head1 NAME
Protocol::WebSocket - WebSocket protocol
=head1 SYNOPSIS
# Server side
my $hs = Protocol::WebSocket::Handshake::Server->new;
$hs->parse('some data from the client');
$hs->is_done; # tells us when handshake is done
my $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!
}
=head1 DESCRIPTION
Client/server WebSocket message and frame parser/constructor. This module does
not provide a WebSocket server or client, but is made for using in http servers
or clients to provide WebSocket support.
L<Protocol::WebSocket> supports the following WebSocket protocol versions:
draft-ietf-hybi-17 (latest)
draft-ietf-hybi-10
draft-ietf-hybi-00 (with HAProxy support)
draft-hixie-75
By default the latest version is used. The WebSocket version is detected
automatically on the server side. On the client side you have set a C<version>
attribute to an appropriate value.
L<Protocol::WebSocket> itself does not contain any code and cannot be used
directly. Instead the following modules should be used:
=head2 High-level modules
=head3 L<Protocol::WebSocket::Server>
Server helper class.
=head3 L<Protocol::WebSocket::Client>
Client helper class.
=head2 Low-level modules
=head3 L<Protocol::WebSocket::Handshake::Server>
Server handshake parser and constructor.
=head3 L<Protocol::WebSocket::Handshake::Client>
Client handshake parser and constructor.
=head3 L<Protocol::WebSocket::Frame>
WebSocket frame parser and constructor.
=head3 L<Protocol::WebSocket::Request>
Low level WebSocket request parser and constructor.
=head3 L<Protocol::WebSocket::Response>
Low level WebSocket response parser and constructor.
=head3 L<Protocol::WebSocket::URL>
Low level WebSocket url parser and constructor.
=head1 EXAMPLES
For examples on how to use L<Protocol::WebSocket> with various event loops see
C<examples/> directory in the distribution.
=head1 CREDITS
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
=head1 AUTHOR
Viacheslav Tykhanovskyi, C<vti@cpan.org>.
=head1 COPYRIGHT
Copyright (C) 2010-2018, Viacheslav Tykhanovskyi.
This program is free software, you can redistribute it and/or modify it under
the same terms as Perl 5.10.
=cut