这个问题类似于Python的这个问题:
WebSocket Server sending messages periodically in python
在Perl中创建WebSocket的示例使用了一个小型消息发送服务:
http://search.cpan.org/~topaz/Net-WebSocket-Server-0.001003/lib/Net/WebSocket/Server.pm
代码如下:
use Net::WebSocket::Server;
my $origin = 'http://example.com';
Net::WebSocket::Server->new(
listen => 8080,
on_connect => sub {
my ($serv, $conn) = @_;
$conn->on(
handshake => sub {
my ($conn, $handshake) = @_;
$conn->disconnect() unless $handshake->req->origin eq $origin;
},
utf8 => sub {
my ($conn, $msg) = @_;
$_->send_utf8($msg) for $conn->server->connections;
},
binary => sub {
my ($conn, $msg) = @_;
$_->send_binary($msg) for $conn->server->connections;
},
);
},
)->start;
这个示例是事件驱动的,仅基于客户端发送的信息向客户端发送消息。如果我想要定期向所有连接的客户端发送消息,有什么好的方法可以做到这一点呢?我可以创建一个在套接字服务器内触发的定期事件吗,或者有一种方式可以创建Perl客户端连接到服务器并发送消息,然后服务器进行广播吗?