【问题标题】:Mojolicious websocket request query stringMojolicious websocket 请求查询字符串
【发布时间】:2013-01-07 11:07:56
【问题描述】:

我在尝试访问 mojolicious websocket 请求中的查询字符串参数时遇到了意外行为。假设我的请求如下所示:

ws://127.0.0.1:3000/websock_action?item_id=1234

然后在我的 mojo 控制器代码中,我尝试通过以下任何一种方式获取 item_id 的值:

#in mojo controller
my $item_id = $self->param('item_id');
my $item_id = scalar $self->param('item_id');
my $item_id = scalar $self->tx->req->url->query->param('item_id');

问题是我得到的 item_id 通常来自以前的请求,无论我使用哪种技术。我的应用目前正在使用 hypnotoad。

mojolicious 中的 websocket 请求是否支持查询字符串参数?有没有更可靠的方法来访问它们?本质上,我想知道我是否正在尝试不受支持的东西,这样我就可以知道问题是否是我的应用所特有的。

提前感谢您的帮助

【问题讨论】:

  • 我总是将 websocket 打开到一个基本 url 并通过通道发送对 item_id 的请求。我不确定上述方法是否有效。

标签: perl mojolicious


【解决方案1】:

我怀疑发生了什么,是参数在 html 请求中传递,然后升级为 websocket 请求,此时它们不再可用。

正如达人所说,在Web-Socket数据中传递数据。比如……

var ws = $.websocket("ws://127.0.0.1:3000/websock_action", {
  events: { message: function(e) {}
});
ws.send('message', 1234);

【讨论】:

    猜你喜欢
    • 2013-04-06
    • 2018-08-17
    • 2014-07-19
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多