@Override public BroadcastOperations getBroadcastOperations() { return new BroadcastOperations(allClients.values(), storeFactory); }
public void remove(String name) { SocketIONamespace namespace = namespaces.remove(name); if (namespace != null) { namespace.getBroadcastOperations().disconnect(); } }
@Override public void send(Packet packet) { for (SocketIOClient client : clients) { client.send(packet); } dispatch(packet); }
/** * 群聊 */ public void sendToGroup(GroupMessageRequest message) { server.getRoomOperations(message.getGroupId()).sendEvent(Event.GROUP, message); } }
@Override public void sendEvent(String name, Object... data) { Packet packet = new Packet(PacketType.MESSAGE); packet.setSubType(PacketType.EVENT); packet.setName(name); packet.setData(Arrays.asList(data)); send(packet); }
@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("请先加群!"); } }
@OnEvent(value = "chatevent") public void onEvent(SocketIOClient client, AckRequest request, ChatObject data) { server.getBroadcastOperations().sendEvent("chatevent", data); }
@Override public void sendEvent(String name, Object... data) { Packet packet = new Packet(PacketType.MESSAGE); packet.setSubType(PacketType.EVENT); packet.setName(name); packet.setData(Arrays.asList(data)); send(packet); }
@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()); }
@Override public BroadcastOperations getRoomOperations(String room) { return new BroadcastOperations(getRoomClients(room), storeFactory); }
public void sendEvent(String name, SocketIOClient excludedClient, Object... data) { Packet packet = new Packet(PacketType.MESSAGE); packet.setSubType(PacketType.EVENT); packet.setName(name); packet.setData(Arrays.asList(data)); for (SocketIOClient client : clients) { if (client.getSessionId().equals(excludedClient.getSessionId())) { continue; } client.send(packet); } dispatch(packet); }
public void remove(String name) { SocketIONamespace namespace = namespaces.remove(name); if (namespace != null) { namespace.getBroadcastOperations().disconnect(); } }
@Override public void onDisconnect(SocketIOClient client) { for(String room:client.getAllRooms()){ client.getNamespace().getRoomOperations(room).sendEvent("user:leave",client.get("username"),room); } } });
/** * Get broadcast operations for clients within * room by <code>room</code> name * * @param room - name of room * @return broadcast operations */ public BroadcastOperations getRoomOperations(String room) { Iterable<SocketIOClient> clients = namespacesHub.getRoomClients(room); return new BroadcastOperations(clients, configCopy.getStoreFactory()); }
@Override public void send(Packet packet) { for (SocketIOClient client : clients) { client.send(packet); } dispatch(packet); }
/** * 加入群聊 * * @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); }
public BroadcastOperations getBroadcastOperations() { return new BroadcastOperations(getAllClients(), configCopy.getStoreFactory()); }
public void sendEvent(String name, SocketIOClient excludedClient, Object... data) { Packet packet = new Packet(PacketType.MESSAGE); packet.setSubType(PacketType.EVENT); packet.setName(name); packet.setData(Arrays.asList(data)); for (SocketIOClient client : clients) { if (client.getSessionId().equals(excludedClient.getSessionId())) { continue; } client.send(packet); } dispatch(packet); }
room.outRoom(userInCache.getUserId()); server.getRoomOperations(roomId).sendEvent("onQuitRoom", userInCache.getUsername()+" out of room"); client.leaveRoom(roomId+""); userInCache.setRoomId("");
@Override public BroadcastOperations getBroadcastOperations() { return new BroadcastOperations(allClients.values(), storeFactory); }