2016-11-21 6 views
1

私はEventBusサーバーとしてVert.x Core 3.3.3とWeb 3.3.3をJavaで使用していますが、Vert.x 2.0.0とSockJS 1.1.1はEventBusに接続するJavascriptのWebクライアント。私は接続されており、メッセージの送受信が可能で、すべての着信および発信トラフィックは開いています。すべてが適切に機能しています。Javascript Vert.x EventBusクライアントSockJSはホストと接続ポートを取得します

私のサーバは、クライアントが接続するときに、各EventBus接続のホストとポートを取得できます。これはJavaのSockJSHandlerのブリッジイベントからsocket()。remoteAddress()の形式で "host:port"の形式で取得されます。

Webクライアント側では、EventBus SockJS接続のリモートアドレス(サーバーのホストとポート)をVert.x ServerのEventBusに接続する機能はありますか? Vert.x Web Client(http://vertx.io/docs/jsdoc/ & https://github.com/vert-x3/vertx-web)のドキュメントを見てきましたが、役に立たないものは見つかりませんでした。

詳細が必要な場合はお知らせください。前もって感謝します。

EDIT 1:

私は実際に私の元の質問に探していたもの誤解や悪い、それを言葉で表現。 @Pauloが言ったように、接続を確立すると、EventBusのホストとポートが何であるかを知っています(つまり、var eb = new EventBus( 'localhost:8080/eventbus'))。

私が実際に探しているのは、クライアントがそのEventBusに登録するハンドラのホストとポートです。私は上記のようにサーバー側でこれを見ることができます。ホストは、クライアント側でEventBus接続を作成するために渡したものではなく、IPアドレスとして戻ってきます。そして、そのハンドラ(?)に対して新しいSockJS接続が行われるので、ポートは異なります。クライアントのハンドラのSockJS接続のホストとポート、特にポートを取得することは可能ですか?

答えて

2

あなたが知りたい情報は、あなたがすでに知っているものです。あなたは、クライアントのWebアプリケーションからeventbus接続を作成するときは、操作を行います。

var eb = new EventBus('http://localhost:8080/eventbus'); 

あなたはコンストラクタに渡す必要があり、パラメータを見ることができるようにあなたが知りたい含まれています

localhost:8080 

のほとんどは

window.location.host 

そして、それはあなたにlocatiを与えるを:あなたは、ハードコードホスト名+ポートを使用する必要はありませんが、あなたのHTMLはJavaScriptでよう務めてきた場所はあなただけ行うことができます倍サーバーが稼働している場所

+0

サーバの位置は、EventBusへのSockJSハンドラ接続と同じではありません。例:上記のようにlocalhost:8080に接続します。しかし、私がEventBusに割り当てるハンドラは、別のポートに接続します。私は上記のようにサーバー側でこれを見ることができます。この場合、サーバー側のクライアントアドレスはxxx.xx.xx.xxx:36138に戻ります。私はこのアドレス(特に私のSockJSポート)をサーバとクライアントの間の一意の参照として使用できるかどうかを知りたいと思っています。 – wrslatz

+0

私はオリジナルの質問が誤解を招き、十分にはっきりと説明されていないと信じています。 @Pauloが言及したように、私は接続を行うときにEB接続のホストとポートを持っています。私が本当に探しているのは、そのEBに登録しているクライアントのハンドラのホストとポートです。私は質問を更新します。 – wrslatz

関連する問題