AnyEvent::Socket::tcp_server(undef, undef, sub { my ($fh, $host, $port) = @_; #die; my $handle = AnyEvent->new(fh => $fh); my $hs = Protocol::WebSocket::Handshake::Server->new(); my $chunk = $handle->{rbuf}; $handle->{rbuf} = undef; if (!$hs->is_done) { $hs->parse($chunk); $handle->push_write($hs->to_string); } }, sub { my ($fh, $host, $port) = @_; $self->port($port); $port_is_assigned->send(); }, );