Thread WebSocket Server tut nicht (3 answers)
Opened by Xorg1990 at 2013-08-04 11:58

Xorg1990
 2013-08-04 11:58
#169346 #169346
User since
2013-05-25
8 Artikel
BenutzerIn
[default_avatar]
Hi, ich habe ein Problem mit dem Modul CPAN:Net::WebSocket::Server.
Ich wollte eine TCP Verbindung „anzapfen“ und die Daten in eine WebSockt Verbindung schreiben als Stream sozusagen.

Mit folgenden Code greife ich auf die TCP Verbindung zu:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
$socket = new IO::Socket::INET (
PeerHost => '127.0.0.1',
PeerPort => '3000',
Proto => 'tcp',
) or die "ERROR in Socket Creation : $!\n";

print "TCP Connection Success.\n";

#while (sysread($socket, $byte, 1)== 1) {
#       print STDOUT $byte;
#    }


Das funktioniert soweit. Nun will ich die while schleife in Net::WebSocket::Server
ausführen, aber das funktioniert nicht.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Net::WebSocket::Server->new(
      listen => 5000,
      silence_max => 0,
        on_connect => sub {
            my ($serv, $conn) = @_;
            $conn->on(
                binary => sub {
                while (sysread($socket, $byte, 1)== 1){
                    $conn->send_binary($byte) for $conn->server->connections;
                  }
                },
            );
        },
)->start;


Das Problem habe ich schon erkannt, die Schleife wird bei "binary" ausgeführt und da es eine Endlosschleife ist kommt der Perl Interpreter nicht bi zu ->start.

Wie könnte man das am besten lösen?
Vor lauter ->, =>, sub{}, Blicke ich hier nicht mehr durch.

View full thread WebSocket Server tut nicht