public void onDisconnect(SocketIOClient client) { Set<String> joinedRooms = client.getAllRooms(); allClients.remove(client.getSessionId()); leave(getName(), client.getSessionId()); storeFactory.pubSubStore().publish(PubSubType.LEAVE, new JoinLeaveMessage(client.getSessionId(), getName(), getName())); for (String joinedRoom : joinedRooms) { leave(roomClients, joinedRoom, client.getSessionId()); } clientRooms.remove(client.getSessionId()); try { for (DisconnectListener listener : disconnectListeners) { listener.onDisconnect(client); } } catch (Exception e) { exceptionListener.onDisconnectException(e, client); } }
@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 void onDisconnect(SocketIOClient client) { for(String room:client.getAllRooms()){ client.getNamespace().getRoomOperations(room).sendEvent("user:leave",client.get("username"),room); } } });
public void onDisconnect(SocketIOClient client) { Set<String> joinedRooms = client.getAllRooms(); allClients.remove(client.getSessionId()); leave(getName(), client.getSessionId()); storeFactory.pubSubStore().publish(PubSubType.LEAVE, new JoinLeaveMessage(client.getSessionId(), getName(), getName())); for (String joinedRoom : joinedRooms) { leave(roomClients, joinedRoom, client.getSessionId()); } clientRooms.remove(client.getSessionId()); try { for (DisconnectListener listener : disconnectListeners) { listener.onDisconnect(client); } } catch (Exception e) { exceptionListener.onDisconnectException(e, client); } }