1

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 リクエストでクエリ文字列パラメーターはサポートされていますか? それらにアクセスするためのより信頼できる方法はありますか? 基本的に、サポートされていないことを試みているかどうかを知りたいので、問題が自分のアプリに固有のものであるかどうかを知ることができます。

助けてくれてありがとう

4

1 に答える 1

1

何が起こっているのかと思うのは、パラメーターがhtmlリクエストで渡され、その後、それらが利用できなくなった時点でwebsocketリクエストにアップグレードされることです。

Daren が言ったように、Web-Socket データでデータを渡します。何かのようなもの...

var ws = $.websocket("ws://127.0.0.1:3000/websock_action", {
  events: { message: function(e) {}
});
ws.send('message', 1234);
于 2013-11-27T22:33:00.407 に答える