赞
踩
1、pom文件
- <dependency>
- <groupId>com.corundumstudio.socketio</groupId>
- <artifactId>netty-socketio</artifactId>
- <version>1.7.19</version>
- </dependency>
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>(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");
- }
- });

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。