WebSocket

 view release on metacpan or  search on metacpan

lib/WebSocket/Version.pm  view on Meta::CPAN


sub new_from_request
{
    my $self = shift( @_ );
    my $class = ref( $self ) || $self;
    my $req  = shift( @_ ) || return( $self->error( "No WebSocket::Request object was provided." ) );
    return( $self->error( "Object provided (", overload::StrVal( $req ), ") is not a WebSocket::Request object." ) ) if( !$self->_is_a( $req, 'WebSocket::Request' ) );
    my $h = $req->headers || return( $self->error( "Unable to find the WebSocket::Headers object." ) );
    unless( ref( $self ) )
    {
        $self = bless( {} => $class )->SUPER::init( @_ );
    }
    my $new;
    # From version 4 onward
    if( $h->header( 'Sec-WebSocket-Version' )->length ||
        $h->header( 'Sec-WebSocket-Key' )->length )
    {
        if( $h->header( 'Sec-WebSocket-Version' )->length &&
            $h->header( 'Sec-WebSocket-Version' )->match( qr/^\d{1,2}$/ ) )
        {
            $new = $self->new( $h->header( 'Sec-WebSocket-Version' )->scalar, debug => $self->debug ) || return( $self->pass_error );

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.005 second using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )