码迷,mamicode.com
首页 > 其他好文 > 详细

Community Server Toolkit(2)

时间:2014-07-24 17:05:50      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:blog   java   io   art   re   c   cti   代码   

3、Community Events服务:用来监听群体服务器中发生的各种事件,如某个服务的启停,某个应用是否准备好,某个用户是否在线或者状态是否发生了变化。

如果为CommunityEventsService组件添加各种监听器,则可以监听到各种事件。

A、添加UserLoginListener,则当用户登录或者登出到Sametime时该CommunityEventsService会发送通知。

当用户登录时,userLoggedIn()方法会被调用;当用户登出时,userLoggedOut()方法会被调用。

B、添加UserLoginFailedListener,则当用户登录失败时,userLoginFailed()方法会被调用。

C、添加UserStatusListener,则当用户的在线状态发送变化时,userStatusChanged()方法会被调用。

D、添加UserPrivacyListener,则当用户的私人列表发生变化时,userPrivacyListChanged()方法会被调用。

E、添加UserOnlineListener,则当用户上线,即第一个应用登录时userOnline方法被调用。当用户离线,即最后一个应用退出时userOffline被调用。

F、添加UserStorageListener,则当用户改变了他的storage时userStorageChanged方法被调用。

G、添加ServiceAvailableListener,则当某个服务启动时serviceAvailable()方法被调用,当某个服务停止时,serviceUnvailable()方法被调用。

H、添加CommunityEventsServiceListener,则当CommunityEvents服务生效时,serviceAvailable()方法被调用,当CommunityEvents服务失效时serviceUnavailable()方法被调用。

例如一个监听用户登录失败的SA可以这样实现:::

1)、首先加载CommunityEventsService组件,以SA的方式登录。

ServerAppService m_saService = (ServerAppService)m_session.getCompApi(ServerAppService.COMP_NAME);
CommunityEventsService m_ceService = (CommunityEventsService)m_session.getCompApi(CommunityEventsService.COMP_NAME);
m_saService.addLoginListener( this);        
short loginType = STUserInstance.LT_SERVER_APP;
Connection[] connections = {new SocketConnection(1516, 17000),};
m_saService.setConnectivity(connections);
m_saService.loginAsServerApp( serverName, loginType, "Hacker Catcher", null);   

 2)等待直到Community Events Service服务生效,添加CommunityEventsServiceListener,当其serviceAvailable方法被调用时则服务生效。我们可以再LoginListener的loggedIn方法中添加CommunityEventsServiceListener。

    public void loggedIn(LoginEvent event)	
    {
       m_ceService.addCommunityEventsServiceListener(this);
    }
    public void loggedOut(LoginEvent event)	
    {		
        m_ceService.removeCommunityEventsServiceListener(this);	
    }

 3)当Community Events Service服务生效时,其serviceAvailable方法被调用,我们在该方法中添加UserLoginFailedListener

	public void serviceAvailable(CommunityEventsServiceEvent event)
	{
		System.out.println("************** Start recording *************");					
		m_ceService.addUserLoginFailedListener(this);
	}
        public void serviceUnavailable(CommunityEventsServiceEvent event)
	{
		System.out.println("************** finish recording *************");
		m_ceService.removeLoginFailedListener(this);
	}

 4)当用户登录失败时,userLoginFailed方法会被调用,在这个方法中实现处理代码。

	public void userLoginFailed(UserLoginFailedEvent event)
	{
		String s = new String("login failed:");
		s += " Name=" + event.getLoginName();
		s += ", ip=" + event.getLoginIp();
		s += ", type=" + Integer.toHexString(event.getLoginType());
		s += ", reason=" + Integer.toHexString(event.getReason());
		
		System.out.println(s);
	}

Community Server Toolkit(2),布布扣,bubuko.com

Community Server Toolkit(2)

标签:blog   java   io   art   re   c   cti   代码   

原文地址:http://www.cnblogs.com/muyuhu/p/3865596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!