in reply to How to use AnyEvent::Handle to read data from a websocket?

If your task is about communication with a Websocket, I would use AnyEvent::WebSocket::Client.

If you want to learn how it is done with AnyEvent, I would look at how AnyEvent::WebSocket::Client does it.

  • Comment on Re: How to use AnyEvent::Handle to read data from a websocket?

Replies are listed 'Best First'.
Re^2: How to use AnyEvent::Handle to read data from a websocket?
by pudda (Acolyte) on Sep 29, 2020 at 14:11 UTC

    Wow thanks a lot!

    I rewrote my code using AnyEvent::WebSocket::Client and it is working just the way I wanted!

    Here's my code after changing it in case someone get curious:

    #!/usr/bin/env perl use strict; use warnings; use lib 'lib'; use Data::Dumper; use AnyEvent::WebSocket::Client 0.12; $|++; my $client = AnyEvent::WebSocket::Client->new; $client->connect("ws://localhost:8082/")->cb(sub { our $connection = eval { shift->recv }; if($@) { # handle error... warn $@; return; } $connection->send('a message'); $connection->on(each_message => sub { my($connection, $message) = @_; if($message->is_text || $message->is_binary) { my $body = $message->body; print $body. "\n"; } }); $connection->on(finish => sub { my($connection) = @_; print "Server Disconnected!\n" }); }); AnyEvent->condvar->recv;