我正在尝试在Perl中编写一个简单的websocket客户端:
use Protocol::WebSocket::Client;
my $client = Protocol::WebSocket->new(url => 'ws://myserver:port');
# Sends a correct handshake header
$client->connect;
# Register on connect handler
$client->on(
connect => sub {
$client->write('hi there');
}
);
# Parses incoming data and on every frame calls on_read
$client->read($reply);
print "$reply\n";
# Sends correct close header
$client->disconnect;
如the documentation for Protocol::WebSocket::Client
所示,
但我收到了消息:
Can't locate object method "new" via package "Protocol::WebSocket" at ./webSocketClient.pl.
我做错了什么?
答案 0 :(得分:4)
Protocol::WebSocket
是WebSocket协议的低级实现。它不包含发送/接收数据的代码;它只是解析协议消息。
您可能希望查看将Protocol::WebSocket
与各种模块一起使用的示例,请参阅examples
。一个好的客户端示例在此模块附带的wsconsole
实用程序中实现。
CPAN上有几个高级模块实现了隐藏所有低级内容的WebSockets,其中大多数使用Protocol::WebSocket
。请查看AnyEvent::WebSocket::Client
或Net::Async::WebSocket::Client
。
答案 1 :(得分:2)
示例代码中存在错误。 Protocol::WebSocket->new
应为Protocol::WebSocket::Client->new