1、pom文件

com.corundumstudio.socketio

netty-socketio

1.7.19

2、设定三个客户端,即三个用户 userName分别是 97 ,98 ,99

客户端连接到服务器后都加入房间room1,服务端代码如下。

Configuration config = new Configuration();

config.setHostname("0.0.0.0");

config.setPort(9092);

final SocketIOServer server = new SocketIOServer(config);

server.addConnectListener(new ConnectListener() {

@Override

public void onConnect(SocketIOClient socketIOClient) {

//加入房间

System.err.println(socketIOClient.getHandshakeData().getSingleUrlParam("userName")+"加入房间room1");

socketIOClient.joinRoom("room1");

}

});

3、服务端发送群聊消息如下

//房间发送消息

int size = server.getRoomOperations("room1").getClients().size();

if (size == 3){

//房间客户端数等于3 执行房间广播 BroadcastAckCallback 第二个参数是超时时间

server.getRoomOperations("room1").sendEvent("groupEvent",ackChatObjectData,new BroadcastAckCallback(ChatObject.class,10){

@Override

protected void onClientTimeout(SocketIOClient client) {

//房间里某一个客户端收到消息的回调超时

super.onClientTimeout(client);

String userName = client.getHandshakeData().getSingleUrlParam("userName");

System.err.println("onClientTimeout"+userName);

}

@Override

protected void onClientSuccess(SocketIOClient client, ChatObject result) {

//房间里某一个客户端收到消息的回调成功

super.onClientSuccess(client, result);

String userName = client.getHandshakeData().getSingleUrlParam("userName");

System.err.println("onClientSuccess"+userName);

}

@Override

protected void onAllSuccess() {

super.onAllSuccess();

//所有在线的客户端全部收到消息的回调成功

System.err.println("onAllSuccess");

}

});

精彩内容

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。