这里我是在服务器端进行转发,遍历当前所有连接,找到目标对象,然后调用客户端函数。
不知道还有没有更好的方法,如果人数多,服务器要承受较的的压力
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;
}
本文介绍了一种服务器端实现私信转发的方法,通过遍历所有连接查找目标用户,并调用客户端函数完成消息发送。该方法适用于人数较多的场景。
1万+

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



