Ich habe ein Problem mit JXSE. Angenommen, ich habe einen RendezVous-Peer und einen Edge-Peer, nicht im selben lokalen Netzwerk.Beitreten zu bestehenden PeerGroup in JXTA/JXSE
Die Rendezvous-Peer einen Peergroup „test“, erstellen und eine Anzeige in dieser Gruppe mit dem Namen „Test advertisement“ veröffentlichen
Lassen Sie uns sagen, dass ich sicher bin, als mein EdgePeer zum Rendezvous-Peer verbunden ist. Ich kann die bestehende Gruppe "test" mit netpeerGroup.getRemoteAdvertisements() finden.
Aber ich weiß nicht, wie man dieser bestehenden Gruppe beitritt. Ich habe versucht, netpeergroup.newGroup (testAdv), mit testAdv = die gegründete peerGroupAdvertisement.
Ich kann die Werbung "Testwerbung" in der "Test" PeerGroup nicht finden. Aber wenn ich all diese Dinge lokal mache, funktioniert es. Vielleicht verstehe ich den Unterschied nicht, wie jxta lokal und über das Internet funktioniert.
hier der Code zum Erstellen oder eine Gruppe anzuschließen:
public void addGroup(final String name) {
ModuleImplAdvertisement mAdv = null;
PeerGroup group = null;
temp = null;
defaultGroup.getDiscoveryService().getRemoteAdvertisements(null, DiscoveryService.GROUP,
"Name", name, 1, new DiscoveryListener() {
@Override
public void discoveryEvent(DiscoveryEvent event) {
Enumeration<Advertisement> advs = event.getResponse().getAdvertisements();
while(advs.hasMoreElements()) {
System.out.println("groupe found");
PeerGroupAdvertisement adv = (PeerGroupAdvertisement) advs.nextElement();
System.out.println("group name : " + adv.getName());
try {
temp = defaultGroup.newGroup(adv);
System.out.println("group joined");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
try {
Thread.sleep(10000);
System.out.println("waiting for group ...");
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(temp == null) {
try {
System.out.println("creating new group ..");
mAdv = defaultGroup.getAllPurposePeerGroupImplAdvertisement(); /* Getting the advertisement of implemented modules */
temp = defaultGroup.newGroup(generatePeerGroupID(name), mAdv, name, name); /* creating & publishing the group */
getDefaultGroup().getDiscoveryService().remotePublish(temp.getPeerGroupAdvertisement());
} catch (Exception e) {
e.printStackTrace();
}
}