Universal Messaging 9.7 | Universal Messaging Developer Guide | Enterprise APIs | Enterprise Developer's Guide for C# | Peer to Peer | Peer to Peer Stream-based Server Services
 
Peer to Peer Stream-based Server Services
Universal Messaging Peer to Peer Stream-based Services communicate via input and output streams on both the Stream-based Client and the Stream-based Server Service.
Anything written to the output stream of the Stream-based Service Client is received via the input stream of the Stream-based Server Service and vice versa.
Creating an Stream-based Server Service
Firstly, in the same way that Publish/Subscribe and Message Queues use an RNAME, the P2P API also requires one to connect to the Realm. The code snippet below shows how this is achieved:

String[] RNAME=({"nsp://127.0.0.1:9000"});
nSessionAttributes nsa = new nSessionAttributes(RNAME);
nServiceFactory factory = new nServiceFactory( nsa );
The nServiceFactory object establishes a connection with the Universal Messaging Realm, and is the factory object from which we can construct our Stream-based Server Service:

nServerService Server = factory.createStreamService( "example",
"Example Stream-based Service" );
while ( true ) {
nEventService serv = (nEventService) server.accept();
Stream inputstream = serv.getInputStream();
Stream outputstream = serv.getOutputStream();
// your logic goes here....
// e.g. query a database, make a connection, send an email, etc.
Console.WriteLine("Got connection " + serv.getServiceInfo().getName());
}
The code snippet above shows how to create an Stream-based Server Service and wait for Client connections. Developers are free to decide how the Server Service should respond once a Client connects to the Server Service.
When a connection is made to the Stream-based Server Service, the Service has an Input Stream (which can be read from), and an Output Stream (which can be written to).
Receiving Data from a Stream-based Client
The Server Service's Input Stream represents data coming from the client. The following code snippet shows how to obtain this Input Stream:

Stream iStream = serv.getInputStream();
Sending Data to a Stream-based Client
The Server Service's Output Stream represents data going to the client. The following code snippet shows how to obtain this Output Stream:

Stream oStream = serv.getOutputStream();

Copyright © 2013-2015 | Software AG, Darmstadt, Germany and/or Software AG USA, Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.