red5获取在线用户列表

 

 


 

red5获取在线用户列表

/**/ /*
*
*        D5Power Studio [www.d5power.com]
*        Code:D5.Benmouse
*
*/

import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IClient;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.Red5;
import java.util.
* ;

public   class  Application extends ApplicationAdapter  ... {
        
private IScope appScope;
        
private String username="";
        
        
//取得本次连接的IScope
        
//appStart将在连接开始的时候自动触发,等同于FMS的onAppStart
        

        
public boolean appStart(IScope app) ...{
                appScope 
= app;
                
return true;
        }
        //连接时触发的函数,定义本过程中的username,等同于FMS的onConnect
        public boolean appConnect(IConnection conn, Object[] params)
        
...{
                username
=(String)params[0];
                
return true;
        }

        
        
//连接加入时触发的函数,写入username的值
        public boolean appJoin(IClient client, IScope app)
        
...{
                client.setAttribute(
"username",username);
                
return true;
        }

        
        
//客户端调用函数,将返回目前登陆的在线列表
        public String login()
        
...{
                IConnection current 
= Red5.getConnectionLocal();
                System.
out.println("<---"+current.getClient().getId()+":"+current.getClient().getAttribute("username"));
                
return getOnlineList();
        }

    
        
//取得在线列表,对在线的客户端进行遍历,并显示。
        public String getOnlineList()
        
...{
                    Iterator
<IConnection> it=appScope.getConnections();
                    String onLineList
="";
                    
while(it.hasNext())
                    
...{
                            IConnection this_conn
=it.next();
                            IClient ic
=this_conn.getClient();
                            String u
=ic.getAttribute("username").toString();
                            onLineList
+=ic.getId()+","+u+";";
                            System.
out.println(u);
                    }

                    System.
out.println("--->");
                    
return onLineList;
            }

    
    
public boolean sendMSG()
    
...{
        
//IScope scope = conn.getScope();
        Iterator<IConnection> it = appScope.getConnections();
        String i
="";
        
while(it.hasNext())
        
...{
                IConnection this_conn
=it.next();
                i
+=this_conn.getClient().getAttribute("username")+",";
        }

            
return true;
    }


}
 

你可能感兴趣的:(用户)