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.