/** * 群聊 */ public void sendToGroup(GroupMessageRequest message) { server.getRoomOperations(message.getGroupId()).sendEvent(Event.GROUP, message); } }
@OnEvent(value="talk") public void onEvent(SocketIOClient socketIOClient, Message message, AckRequest request) { logger.info("test event get data:"+JSON.toJSONString(message)); UserInCache describe = SocketConnectedHandler.clientMap.get(socketIOClient.getSessionId().toString()); server.getRoomOperations(message.getRoom()).sendEvent("onTalk", describe.getUsername()+":"+message.getContent()); logger.info("all rooms:"+((Namespace)(server.getNamespace(Namespace.DEFAULT_NAME))).getRooms()); logger.info("client all rooms:"+socketIOClient.getAllRooms()); }
/** * 加入群聊 * * @param client 客户端 * @param request 请求 * @param data 群聊 */ @OnEvent(value = Event.JOIN) public void onJoinEvent(SocketIOClient client, AckRequest request, JoinRequest data) { log.info("用户:{} 已加入群聊:{}", data.getUserId(), data.getGroupId()); client.joinRoom(data.getGroupId()); server.getRoomOperations(data.getGroupId()).sendEvent(Event.JOIN, data); }
room.outRoom(userInCache.getUserId()); server.getRoomOperations(roomId).sendEvent("onQuitRoom", userInCache.getUsername()+" out of room"); client.leaveRoom(roomId+""); userInCache.setRoomId("");
client.joinRoom(roomId); request.sendAckData(room); server.getRoomOperations(roomId).sendEvent("onInRoom", userInCache.getUsername()+" come in room"); logger.info("{} in room {}", userInCache.getUserId()+userInCache.getUsername(), userInCache.getRoomId()); logger.info("房间里人员信息:{}", JSON.toJSON(room.getUsersInRoom().values()));
@OnEvent(value = Event.GROUP) public void onGroupEvent(SocketIOClient client, AckRequest request, GroupMessageRequest data) { Collection<SocketIOClient> clients = server.getRoomOperations(data.getGroupId()).getClients(); boolean inGroup = false; for (SocketIOClient socketIOClient : clients) { if (ObjectUtil.equal(socketIOClient.getSessionId(), client.getSessionId())) { inGroup = true; break; } } if (inGroup) { log.info("群号 {} 收到来自 {} 的群聊消息:{}", data.getGroupId(), data.getFromUid(), data.getMessage()); sendToGroup(data); } else { request.sendAckData("请先加群!"); } }