AnyEvent-WebSocket-Client

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

         'X-Foo' => 'bar',
         'X-Baz' => [ 'abc', 'def' ],
       },
     );
     
     AnyEvent::WebSocket::Client->new(
       http_headers => [
         'X-Foo' => 'bar',
         'X-Baz' => 'abc',
         'X-Baz' => 'def',
       ],
     );

    Will generate:

     X-Foo: bar
     X-Baz: abc
     X-Baz: def

    Although, the order cannot be guaranteed when using the hash style.

 max_payload_size

    The maximum payload size for received frames. Currently defaults to
    whatever Protocol::WebSocket defaults to.

 max_fragments

    The maximum number of fragments for received frames. Currently defaults
    to whatever Protocol::WebSocket defaults to.

 env_proxy

    If you set true to this boolean attribute, it loads proxy settings from
    environment variables. If it finds valid proxy settings, connect method
    will use that proxy.

    Default: false.

    For ws WebSocket end-points, first it reads ws_proxy (or WS_PROXY)
    environment variable. If it is not set or empty string, then it reads
    http_proxy (or HTTP_PROXY). For wss WebSocket end-points, it reads
    wss_proxy (WSS_PROXY) and https_proxy (HTTPS_PROXY) environment
    variables.

METHODS

 connect

     my $cv = $client->connect($uri)
     my $cv = $client->connect($uri, $host, $port);

    Open a connection to the web server and open a WebSocket to the
    resource defined by the given URL. The URL may be either an instance of
    URI::ws, URI::wss, or a string that represents a legal WebSocket URL.

    You can override the connection host and port by passing them in as the
    second and third argument. These values (if provided) are passed
    directly into AnyEvent::Socket's tcp_connect function, so please note
    that function's idiosyncrasies in the AnyEvent::Socket documentation.
    In particular, you can pass in unix/ as the host and a filesystem path
    as the "port" to connect to a unix domain socket.

    This method will return an AnyEvent condition variable which you can
    attach a callback to. The value sent through the condition variable
    will be either an instance of AnyEvent::WebSocket::Connection or a
    croak message indicating a failure. The synopsis above shows how to
    catch such errors using eval.

FAQ

 My program exits before doing anything, what is up with that?

    See this FAQ from AnyEvent:
    AnyEvent::FAQ#My-program-exits-before-doing-anything-whats-going-on.

    It is probably also a good idea to review the AnyEvent documentation if
    you are new to AnyEvent or event-based programming.

 My callbacks aren't being called!

    Make sure that the connection object is still in scope. This often
    happens if you use a my $connection variable and don't save it
    somewhere. For example:

     $client->connect("ws://foo/service")->cb(sub {
     
       my $connection = eval { shift->recv };
     
       if($@)
       {
         warn $@;
         return;
       }
     
       ...
     });

    Unless $connection is saved somewhere it will get deallocated along
    with any associated message callbacks will also get deallocated once
    the connect callback is executed. One way to make sure that the
    connection doesn't get deallocated is to make it a our variable (as in
    the synopsis above) instead.

CAVEATS

    This is pretty simple minded and there are probably WebSocket features
    that you might like to use that aren't supported by this distribution.
    Patches are encouraged to improve it.

SEE ALSO

      * AnyEvent::WebSocket::Connection

      * AnyEvent::WebSocket::Message

      * AnyEvent::WebSocket::Server

      * AnyEvent

      * URI::ws



( run in 0.598 second using v1.01-cache-2.11-cpan-39bf76dae61 )