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 回答