|
REQUIREMENT engine.LoginLogoutEvent |
| Type | NEW |
| Priority | LOW |
| Status | DEPRECATED |
| Topic | Clients can be notified about other clients login or logout events. Deprecated: Please use events as described in requirement admin.events | ||||||||||||||||
|
Des cription |
The public Session Id is passed in the client properties with the key "__publicSessionId", it is of type long. Further the absolute, cluster wide unique name is available with the key "__absoluteName", it is of type String. |
||||||||||||||||
|
Example Java |
Work around to receive events with new EventPlugin To reveive the login/logout event with the new framework please add this to
<plugin create='true' id='connectEvent' className='org.xmlBlaster.engine.EventPlugin'>
<action do='LOAD' onStartupRunlevel='8' sequence='4'/>
<action do='STOP' onShutdownRunlevel='7' sequence='4'/>
<attribute id='eventTypes'>client/*/session/*/event/connect</attribute>
<attribute id='destination.publish'>
"publish.key=<key oid='__sys__Login'><__sys__internal/></key>",
"publish.qos=<qos><expiration lifeTime='0'/><topic destroyDelay='30000'>
<persistence relating='msgUnitStore' type='RAM'/>
<queue relating='history' type='RAM'/></topic></qos>"
</attribute>
</plugin>
<plugin create='true' id='disconnectEvent' className='org.xmlBlaster.engine.EventPlugin'>
<action do='LOAD' onStartupRunlevel='8' sequence='4'/>
<action do='STOP' onShutdownRunlevel='7' sequence='4'/>
<attribute id='eventTypes'>client/*/session/*/event/disconnect</attribute>
<attribute id='destination.publish'>
"publish.key=<key oid='__sys__Logout'><__sys__internal/></key>",
"publish.qos=<qos><expiration lifeTime='0'/><topic destroyDelay='30000'>
<persistence relating='msgUnitStore' type='RAM'/>
<queue relating='history' type='RAM'/></topic></qos>"
</attribute>
</plugin>
<plugin create='true' id='clientListEvent' className='org.xmlBlaster.engine.EventPlugin'>
<action do='LOAD' onStartupRunlevel='8' sequence='4'/>
<action do='STOP' onShutdownRunlevel='7' sequence='4'/>
<attribute id='eventTypes'>client/*/session/*/event/connect,client/*/session/*/event/disconnect</attribute>
<attribute id='destination.publish'>
"publish.key=<key oid='__sys__UserList'><__sys__internal/></key>",
"publish.content=$_{clientList}",
"publish.qos=<qos><expiration lifeTime='0'/>
<topic destroyDelay='30000'><persistence relating='msgUnitStore' type='RAM'/>
<queue relating='history' type='RAM'/></topic></qos>"
</attribute>
</plugin>
The returned client properties contain all need informations: content: client/*/session/*/event/connect content (example for __sys__UserList): __RequestBroker_internal[heron],Martin,SimpleReaderGui,Joe ... qos: ... <clientProperty name='_eventType'>client/*/session/*/event/connect</clientProperty> <clientProperty name='_subjectId'>Martin</clientProperty> <clientProperty name='_publicSessionId' type='long'>1</clientProperty> <clientProperty name='_summary'>Login of client /node/xmlBlaster_127_0_0_2_3412/client/Martin/1</clientProperty> <clientProperty name='_absoluteName'>/node/heron/client/Martin/1</clientProperty> ... Note that we have marked the event message to be volatile, this is a little change of behavior to the original events, further the login name is not delivered in the content anymore, you'll find it in the client property 'subjectId'. See http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html You can as well query the java javaclients.HelloWorldGet -oid __cmd:?clientList |
||||||||||||||||
|
Example Java |
The following Java code snippet shows the access to the client login events:
// subscribe on login events:
String xmlKey = "<key oid='__sys__Login' queryType='EXACT'></key>";
String qos = "<qos></qos>";
try {
xmlBlaster.subscribe(xmlKey, qos);
} catch(XmlBlasterException e) {
}
...
// in the update() method you receive a message on client login:
// Example for a client session "/node/heron/client/joe/2":
// Access "joe"
String loginName = new String(content);
// Access "2"
long publicSessionId = updateQos.getClientProperty("__publicSessionId", 0L);
System.out.println("Client " + loginName + " logged in with session " + publicSessionId);
// Access "/node/heron/client/joe/2"
String absoluteName = updateQos.getClientProperty("__absoluteName", "");
System.out.println("Client is '" + absoluteName + "'");
|
||||||||||||||||
| Configure |
These parameters allow to configure the plugin. Email data sink specific settings
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details. |
||||||||||||||||
| See REQ | admin | ||||||||||||||||
| See REQ | admin.events | ||||||||||||||||
| See TEST | org.xmlBlaster.test.authentication.TestLoginLogoutEvent |
This page is generated from the requirement XML file xmlBlaster/doc/requirements/engine.LoginLogoutEvent.xml