2

私は次のインターフェースを持っています。

interface Server {
   void subscribe(in Client client);
};

interface Client {
   void ping();
   void pong();
};

初期化時に、クライアントはサーバーに接続し、subscribe(this) を呼び出します。次に、サーバーはクライアントで ping() または pong() メソッドを時々呼び出します。ただし、クライアントが NAT の背後にある場合、これは機能しません。この問題の可能な回避策は何ですか?

サーバーからクライアントへの呼び出しにクライアントによって作成されたTCP接続を利用することは可能ですか? お知らせ下さい。

4

1 に答える 1

2

ORBが双方向IIOPをサポートしているかどうかを確認します。これにより、サーバー->クライアントコールバックのNAT/ファイアウォールの問題が解決されます。

これをサポートするORBは次のとおりです。

OmniORB- http: //omniorb.sourceforge.net/omni40/omniORB/omniORB008.html#sec:bidir

Orbix- http: //documentation.progress.com/output/Iona/orbix/migration/html/InteropCx3.html

Visibroker- http://www.albany.edu/dept/csi/csi518/fall03/inprise/vbroker/doc/books/vbj/vbj45/programmers-guide/bidir.html

于 2013-02-21T03:39:40.233 に答える