【发布时间】:2012-09-27 18:59:03
【问题描述】:
有没有办法像这样在 Mojolicious::Lite 的 websocket 请求中访问session?
get '/' => sub {
my $self = shift;
$self->session->{foo} = 'bar';
$self->render('index');
};
websocket '/ws' => sub {
my $self = shift;
$self->on(message =>
sub {
my ($self, $msg) = @_;
my $foo = $self->session->{foo}; # <<<<< is actually empty
}
);
};
有什么提示吗?
【问题讨论】:
-
我也遇到过这个问题。我不确定这是否可能。也许在tracker 上提交错误?
-
在发帖之前我已经在他们的邮件列表中询问过,但从未得到回复。我最终将签名的 cookie 值存储在隐藏的 div 中,然后将其与每个 WS 消息一起作为“协议”的一部分发送。在消息处理程序中,我检查 cookie 值是否存在,检查它的签名,然后 base64-decode 并照常使用它。
标签: perl websocket mojolicious