JXSE を使用して Java で JXTA ベースのアプリケーションを開発しています。ローカルでは非常にうまく機能しますが、今はインターネットでこの機能を取得しようとしています。
たとえば、ローカル ネットワークに 2 台のコンピューターがあります。彼らはすぐにお互いを見つけ、アプリケーションは機能します。問題ない。
現在、これらの 2 台のコンピューターと、別のローカル ネットワーク上に他の 2 台のコンピューターがあります。私が理解しているように、最小要件として、接続される 2 つのパブリック RendezVous ピア (各ローカル ネットワークに 1 つ) が必要です。しかし、私はそれに対処する方法を見つけることができません。
私のアプリケーションでは、setAutoStart メソッドを使用しています。つまり、ピアは必要に応じて自動的に RendezVous ピアに昇格します。
だから私は、2 つの離れたピアがパブリック アドレスを与えずにお互いを発見することは不可能だと思います。したがって、ピアで有効な tcp アドレスを取得し、それを他の人に渡す必要があります。誰かがそれを行う方法を知っていれば、私はとても幸せです!
編集:私の設定
//Network setup
try {
manager = new NetworkManager(NetworkManager.ConfigMode.EDGE, peer_name, conf.toURI());
} catch (IOException e) {
//chemin incorrect ?
e.printStackTrace();
System.exit(-1);
}
try {
NetworkConfigurator configurator = manager.getConfigurator();
configurator.setTcpPort(port);
configurator.setTcpEnabled(true);
configurator.setTcpIncoming(true);
configurator.setTcpOutgoing(true);
configurator.setUseMulticast(true);
configurator.setPeerID(peer_id);
} catch (IOException e) {
// ? Si le dossier a bien été crée pas trop de raison d'avoir cette exception
e.printStackTrace();
}
// ..... some code ....... ///
PeerGroup net_group = manager.startNetwork();
net_group.getRendezVousService().setAutoStart(true);
だから私は net_group.getRendezVousService で動作する addRendezVous(URI uri) または addRendezVous(String uri) を作成しますが、URI またはアドレスを見つける方法が本当にわかりません..
そして私のアプリ: