Thread WebSocket in HTTP
(11 answers)
Opened by rosti at 2023-11-06 16:53 2023-11-07T09:56:36 bianca Es gibt kein Perl in dieser DEMO. Das WebSocket wird vom Browser(JS) an einem öffentlichen WebSocket-Server hergestellt. Code: (dl
)
var ws = new WebSocket("wss://ws.postman-echo.com/raw"); Nur sendet dieser Server die Response nicht als Broadcast an alle die mit ihm verbunden sind sondern nur an diesen einen Client. Untenstehend ein WebSocket-Server in Perl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #!/usr/bin/perl # Websocket Broadcast Server use Net::WebSocket::Server; use POSIX qw(strftime); my $port = 443; $| = 1; print "Listen on $port\n"; Net::WebSocket::Server->new( listen => $port, on_connect => sub { my ($serv, $conn) = @_; $conn->on( handshake => sub { my ($conn, $handshake) = @_; print "handshake: @_\n"; }, utf8 => sub { my ($conn, $msg) = @_; $_->send_utf8(strftime("%X", localtime(time))."\0".$msg) for $conn->server->connections; print "utf8: $msg\n"; }, binary => sub { my ($conn, $msg) = @_; $_->send_binary($msg) for $conn->server->connections; print "binary: $msg\n"; }, ); }, )->start; Einfach auf der Konsole starten. Im Browser ws = new WebSocket("wss://localhost:443"); . |