这里我是在服务器端进行转发,遍历当前所有连接,找到目标对象,然后调用客户端函数。
不知道还有没有更好的方法,如果人数多,服务器要承受较的的压力
public boolean sendPrivateMsg(String target,String msg){
IConnection current = Red5.getConnectionLocal();
String sender = current.getClient().getAttribute("username").toString();
if(sender.equals("")){
return false;
}
//循环连接
Iterator<IConnection> it = app.getConnections();
while (it.hasNext()) {
IConnection conn = it.next();
//得到每个连接的用户名,这个用户名是在初始连接时存放的
String u = conn.getClient().getAttribute("username").toString();
if (u.equals(target))
if (conn instanceof IServiceCapableConnection) {
//转发消息
//send
((IServiceCapableConnection) conn).invoke("getPrivateMsg", new Object[] {sender,msg});
return true;
}
}
return false;
}