mrniko / netty-socketio

Socket.IO server implemented on Java. Realtime java framework
Apache License 2.0
6.8k stars 1.65k forks source link

JoinRoom and LeaveRoom #297

Open dondragon2 opened 8 years ago

dondragon2 commented 8 years ago

I notice these methods on the SocketIOClient but I cannot find any documentation on how to use them and what there are to be used for. Can someone help me out with this? Is it for a chat room? What exactly are they for?

hyichao commented 8 years ago

room is the server side feature. Look at the following method, which i add two event listener to the server. once the client side emit signal, and these event catches them, the server will automatically establish a room and let that client in.

    /**
     * join: participate into a room that could have private chat
     * leave: exit from the room
     */
    private void addRoomEvents() {

        server.addEventListener("join", String.class, new DataListener<String>() {
            @Override
            public void onData(SocketIOClient socketIOClient, String roomName, AckRequest ackRequest) throws Exception {
                log.info("<join room name> " + roomName);
                socketIOClient.joinRoom(roomName);
            }
        });

        server.addEventListener("join", String.class, new DataListener<String>() {
            @Override
            public void onData(SocketIOClient socketIOClient, String roomName, AckRequest ackRequest) throws Exception {
                log.info("<leave room name>" + roomName);
                socketIOClient.leaveRoom(roomName);
            }
        });
    }
Socket fromUser = ...
Socket toUser=...
.... some other setting of socket client ...

String roomId = "Hello";
fromUser.emit("join", roomId);
toUser.emit("join", roomId);
majintao commented 8 years ago

I want to know If the socket join a room and then it broadcast a message,the message broadcast to the sockets connected to the server or joined the room?