Re: Peer-to-peer message exchange

"William J. Mills" <[email protected]> Tue, 3 Oct 2006 11:11:12 -0700
Newsgroups gmane.network.beep.beepcore.java.general
Message-ID <[email protected]>
That channel you opened is peer to peer, you should be able to send a 
MSG from A to B in there just fine.  Either side can send messages in a
channel as long as the profile supports it.

-bill

On Tue, Oct 03, 2006 at 01:39:58PM -0400, [email protected] wrote:
> Hi
> 
>  
> 
> I have the following scenario:
> 
>  
> 
> Server A listening on port 1234
> 
> Server B initiating a session on server A using BEEP
> 
> Server B start a channel
> 
> Server B sends a MSG and got a reply from server A.
> 
>  
> 
> I want at this point that the server A sends a MSG to server B. But
> server A can't send messages since it doesn't know which channel to use.
> Also, Server B is not listening at all. How could I tell the Server B to
> listen for MSG and tell server A which channel to use?  Do I need to
> create a new TCPSession.listen(port+1, profileRegistry) on server B and
> on server A initiates a connection to the server B ???
> 
>  
> 
> Here's the source code for server A:
> 
>  
> 
> ProfileRegistry = new ProfileRegistry();
> 
> mFlapProfile = new FlapProfile();
> 
>  
> 
> // Initialize the profile and add it to the advertised profiles
> 
> ProfileRegistry.addStartChannelListener("http://sitacs.uow.edu.au/ns/loc
> ation/flap/beep",
> 
>  
> mFlapProfile.init("http://sitacs.uow.edu.au/ns/location/flap/beep",
> null),
> 
>                                     null);
> 
>  
> 
> public void run() {
> 
>         try {
> 
>             // Loop listening for new Sessions
> 
>             while (true) {
> 
>                 TCPSessionCreator.listen(port, ProfileRegistry);
> 
>         } catch (Exception e) {
> 
>             log.error("Listener exiting", e);
> 
>         }
> 
>  }
> 
>  
> 
> Here's the source code for server B
> 
> public synchronized void run() {
> 
>       //Initiate a session with the server
> 
>       try {
> 
>           
> 
>           mSession = TCPSessionCreator.initiate(host, port);
> 
>           mChannel = mSession.startChannel(FlapProfile.URI);
> 
>           //send first MSG and got reply in this method
> 
>           initiateSync ();
> 
>           mChannel.setRequestHandler(this);
> 
>               
> 
>           while (mSession.getSocket().isConnected()) {
> 
>             //wait for incoming data what to do here ????
> 
>           }
> 
>                    
> 
>       } catch (BEEPError e) {
> 
>           if (e.getCode() == 550) {
> 
>               System.err.println("bing: Error host does not support " +
> 
>                                  "echo profile");
> 
>           } else {
> 
>               System.err.println("bing: Error starting channel (" +
> 
>                                  e.getCode() + ": " +
> 
>                                  e.getMessage() + ")");
> 
>           }
> 
>           return;
> 
>       } catch (BEEPException e) {
> 
>           System.err.println("bing: Error starting channel (" +
> 
>                              e.getMessage() + ")");
> 
>           return;
> 
>       } catch (InterruptedException e) {
> 
>         // TODO Auto-generated catch block
> 
>         e.printStackTrace();
> 
>       } 
> 
>     }
> 
>  
> 
> private void initiateSync() {
> 
>       
> 
>       Reply reply = new Reply();
> 
>       InputStream is = null;
> 
>       
> 
>       String lSync = "<?xml version='1.0' encoding='UTF-8'?>" +
> 
>         "<sync xsi:type='sync' xmlns='urn:flap'/>";
> 
>  
> 
>       try {
> 
>         // Send the synchronization request
> 
>         mChannel.sendMSG(new StringOutputDataStream("application/xml",
> lSync),
> 
>                          reply);
> 
>  
> 
>         while (reply.hasNext()) {
> 
>           //Get the reply to the request
> 
>           is = reply.getNextReply().getDataStream().getInputStream();
> 
>           
> 
>           Document lDoc = mDomBuilder.parse(is);
> 
>           //Convert the XML request to a Java object
> 
>           Unmarshaller lUnmarshaller =
> mJaxBContext.createUnmarshaller();
> 
>           JAXBElement instance =
> (JAXBElement)lUnmarshaller.unmarshal(lDoc);
> 
>           SyncrType lSyncResponse = (SyncrType)instance.getValue();
> 
>           
> 
>           //TODO Save information
> 
>           System.out.println("Save information");
> 
>         }
> 
>       } catch (SAXException e) {
> 
>         // TODO Auto-generated catch block
> 
>         e.printStackTrace();
> 
>       } catch (JAXBException e) {
> 
>         // TODO Auto-generated catch block
> 
>         e.printStackTrace();
> 
>       } catch (BEEPInterruptedException e) {
> 
>           System.err.println("bing: Error receiving reply (" +
> 
>                              e.getMessage() + ")");
> 
>           e.printStackTrace();
> 
>       } catch (BEEPException e) {
> 
>         System.err.println("bing: Error sending request (" +
> 
>                            e.getMessage() + ")");
> 
>         e.printStackTrace();
> 
>       } catch (IOException e) {
> 
>           System.err.println("bing: Error receiving reply (" +
> 
>                              e.getMessage() + ")");
> 
>           e.printStackTrace();
> 
>       }
> 
>     }   
> 
>  
> 
> Regards,
> 
> Eric
> 
>  
> 
>  
> 

> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Beepcore-java-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/beepcore-java-users


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV