JXTA 雙向通訊 可以通過 JxtaServerSocket /JxtaSocket和 JxtaServerPipe/JxtaBiDiPipe 來實現 其實現的過程非常的類是我們做FTP的時候所采用的ServerSocket/Socket機制,也就是服務斷監聽客戶端連接的原理。以JxtaServerPipe為例,在服務端:
serverPipe = new JxtaServerPipe(eg.netPeerGroup,eg.pipeAdv);
serverPipe.setPipeTimeout(0);然后就是服務端的循環監聽客戶端的連接
while (true) {
try {
JxtaBiDiPipe bipipe = serverPipe.accept();
if (bipipe != null ) {
System.out.println("JxtaBidiPipe accepted,sending 100 messages to the other end");
//Send a 100 messages
sendTestMessages(bipipe);
}
} catch (Exception e) {
}
}
在客戶端則是通過JxtaBiDiPipe 來進行連接服務斷的操作:pipe = new JxtaBiDiPipe();
pipe.connect(eg.netPeerGroup,null,eg.pipeAdv,
180000,
// register as a message listener
eg);當有消息來得時候就會觸發 pipeMsgEvent(PipeMsgEvent event)事件