Perl Net::WebSocket:: Сервер

Я использую Perl Module Net::WebSocket::Server для создания системы доставки сообщений для пользователей, посещающих домен. Я использую примеры сценариев со страницы модуля CPAN, и это код, который я выполняю:

#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket::SSL;
use Net::WebSocket::Server;

my $ssl_server = IO::Socket::SSL->new(
      Listen        => 5,
      LocalPort     => 4000,
      Proto         => 'tcp',
      SSL_cert_file => '/ssl/domain.com.crt',
      SSL_key_file  => '/ssl/domain.com.key',
    ) or die "failed to listen: $!";

my $port = 4000;
#print "Starting WebSocket chat server on port $port, press Ctr-C to disconnect\n$
Net::WebSocket::Server->new(
    listen => $ssl_server,
    on_connect => sub {
        my ($serv, $conn) = @_;
        $conn->on(
            utf8 => sub {
                my ($conn, $msg) = @_;
                # print "got: $msg\n";
                print $_->ip() for( $serv->connections() );
                print $_->port() for( $serv->connections() );
                $_->send_utf8($msg) for( $serv->connections() );
            },
    );
    },
)->start;

Я хотел бы извлечь некоторую информацию, которая предоставит мне пользователей в сети, например, IP или идентификатор соединения, и поместить их все в массив. Вы можете видеть мои прокомментированные попытки получить данные о соединении и распечатать их, используя datadumper, но это привело только к ошибкам или хэшам. Может кто-нибудь выяснить, как извлечь IP или идентификаторы соединений и поместить их в массив, чтобы я знал, сколько существует уникальных соединений?

Решение:

Net::WebSocket::Server->new(
    listen => $ssl_server,
    on_connect => sub {
        my ($serv, $conn) = @_;

        $conn->on(
            utf8 => sub {
                my ($conn, $msg) = @_;
                $IP = $conn->ip();
                $PORT = $conn->port();
                # print "got: $msg\n";
                $_->send_utf8('IP: ' . $IP . ' PORT: ' . $PORT  . ' '. $msg) for( $serv->connections() );
            },
    );
    },
)->start;

0 ответов

Другие вопросы по тегам