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;
}
} 
5946

被折叠的 条评论
为什么被折叠?



