AnyEvent-WebSocket-Client
view release on metacpan or search on metacpan
'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 )