@Override
public void switchP2p(IMHeader header, MessageLite body, ChannelHandlerContext ctx) {
// IMSwitchService.IMP2PCmdMsg p2pCmdMsg = (IMSwitchService.IMP2PCmdMsg) body;
// long toId = p2pCmdMsg.getToUserId();
// FIXME 需要确认一下逻辑
// ClientConnection clientConn = ClientConnectionMap.getClientByUserId(String.valueOf(toId));
// if (clientConn != null) {
// clientConn.getCtx().writeAndFlush(new IMProtoMessage<IMSwitchService.IMP2PCmdMsg>(header.clone(), p2pCmdMsg));
// }
IMSwitchService.IMP2PCmdMsg p2pCmdMsg = (IMSwitchService.IMP2PCmdMsg)body;
// 设置用户的ID
long userId = super.getUserId(ctx);
p2pCmdMsg = p2pCmdMsg.toBuilder().setFromUserId(userId).build();
IMProtoMessage<MessageLite> swithP2pMsg = new IMProtoMessage<MessageLite>(header, body);
long toId = p2pCmdMsg.getToUserId();
long fromId = p2pCmdMsg.getFromUserId();
ClientUser toClientUser = ClientUserManager.getUserById(toId);
ClientUser fromClientUser = ClientUserManager.getUserById(fromId);
//处理是否正确需要确认?
if (toClientUser != null ){
toClientUser.broadcast(swithP2pMsg, ctx);
}
if (fromClientUser != null) {
fromClientUser.broadcast(swithP2pMsg, null);
}
ClientUserManager.broadCast(swithP2pMsg, SysConstant.CLIENT_TYPE_FLAG_BOTH);
// 通过路由进行转发
// routerHandler.send(header, body);
messageServerCluster.send(header, body);
}
IMSwitchHandlerImpl.java 文件源码
java
阅读 30
收藏 0
点赞 0
评论 0
项目:sctalk
作者:
评论列表
文章目录