Node.js &引用;握手错误:响应线错误“;连接到websocket时

Node.js &引用;握手错误:响应线错误“;连接到websocket时,node.js,perl,websocket,Node.js,Perl,Websocket,我正在尝试使用以下Perl代码连接到websocket: use AnyEvent; use AnyEvent::WebSocket::Client 0.12; my $client = AnyEvent::WebSocket::Client->new; $client->connect("wss://example.com")->cb(sub { my $connection = eval { shift->recv }; # This line is g

我正在尝试使用以下Perl代码连接到websocket:

use AnyEvent;
use AnyEvent::WebSocket::Client 0.12;

my $client = AnyEvent::WebSocket::Client->new;

$client->connect("wss://example.com")->cb(sub {
    my $connection = eval { shift->recv };  # This line is generating the error
    if($@) {
        # handle error...
        warn $@;
        return;
    }

    # send a message through the websocket...
    $connection->send('');

    # receive message from the websocket...
    $connection->on(each_message => sub {
        my($connection, $message) = @_;
        print "Recieved Message...\n"
    });

    # handle a closed connection...
    $connection->on(finish => sub {
        # $connection is the same connection object
        my($connection) = @_;
        print "Disconnected...\n";
    });

$connection->close;

});
AnyEvent->condvar->recv;
但是,我得到以下错误:

握手错误:websocket.pl第10行的响应行错误。
如何修复此错误


另外,我尝试将以下工作node.js代码移植到Perl:

var autobahn=require('autobahn');
var wsuri=”wss://example.com";
var连接=新高速公路连接({
url:wsuri,
领域:“realm1”
});
connection.onopen=函数(会话){
函数txtEvent(args、kwargs){
console.log(args);
};
session.subscribe('textmsg',txtEvent);
}
connection.onclose=函数(){
控制台日志(“连接关闭”);
}
connection.open();
我也在复习一本书


任何关于调试它的帮助或关于我应该使用哪个包连接(而不是)的建议都会很有帮助。

错误消息看起来像是SSL握手问题。 (websocket使用wss)。 证书是否可信? 您可以添加以下内容:

# Ignore SSL verification issues
$client->{ssl_no_verify} = 1;

我在我的websocket上测试了你的代码,效果很好。(无错误消息)。

AutobahnJS是WAMP(通过WebSocket)的一种实现。WebSocket上的WAMP要求客户端在开始握手时宣布“WAMP.2.json”(或变体)作为WebSocket子脚本。当您的客户机不这样做时,符合条件的WAMP服务器将拒绝WebSocket连接。也许这正在发生,Perl吐出了一条没有帮助/不正确的“错误响应”错误消息。是的,这就是为什么,很遗憾我不知道如何修复它,我稍后会读到它,现在我只是使用js。我得到了一个类似的错误:“无法通过包找到对象方法“recv…”