0

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 またはアドレスを見つける方法が本当にわかりません..

そして私のアプリ: マイアプリ

4

1 に答える 1