Felipe Gasper
and 1 contributors

NAME

Net::WAMP::RawSocket

SYNOPSIS

Client:

    my $rs = Net::WAMP::RawSocket::Client->new(

        #required
        io => IO::Framed::ReadWrite->new( $inet ),

        #optional
        max_pings           => 10,
        max_receive_length  => 2**23,    #default
    );

    #msgpack is also accepted
    $rs->send_handshake(
        serialization => 'json',    #default
    );

    $rs->verify_handshake();

    $rs->send_message('This is a message.);

    my $msg_txt = $rs->get_next_message();

Server:

    my $rs = Net::WAMP::RawSocket::Server->new(

        #required
        io => IO::Framed::ReadWrite->new( $inet ),

        #optional
        max_pings           => 10,
        max_receive_length  => 2**23,    #default
    );

    $rs->receive_and_answer_handshake();

    $rs->send_message('This is a message.);

    my $msg_txt = $rs->get_next_message();

DESCRIPTION

This module implements WAMP’s RawSocket protocol. It’s a simpler—and hopefully faster—protocol for speaking to a WAMP server when you have a raw TCP connection as opposed to a web browser.

Note that one of RawSocket’s limitations is a hard upper limit (16 MiB) on message size: if you want to send or receive single messages of over 16 MiB, you’ll need some other transport mechanism besides RawSocket.

GENERAL METHODS

CLASS->new( %OPTS )

Instantiates the relevant class. %OPTS are:

  • max_receive_length As per the protocol specification, this must be a power of 2 from 512 (2**9) to 16,777,216 (2**24), inclusive.

  • max_pings The number of pings to allow unanswered before we give up on the connection.

OBJ->send_message( MSG_STRING )

Sends a regular message.

OBJ->get_next_message()

Returns the next message string, or undef if no message is available. This will also (silently) consume any PONG messages that may arrive.

OBJ->check_heartbeat()

Run this when your read timeout expires to send a PING message.

OBJ->get_serialization()

json or msgpack.

OBJ->get_max_send_length()

The maximum bytes that the connection’s peer is willing to receive in a single RawSocket frame.