Springboot 集成netty-socketio
netty-socketio: 仿`node.js`实现的socket.io服务端
1.将WebSocket、AJAX和其它的通信方式全部封装成了统一的通信接口
2.使用时,不用担心兼容问题,底层会自动选用最佳的通信方式
3.适合进行服务端和客户端双向数据通信
pom.xml
<!-- socket.io服务端 -->
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>1.7.7</version>
</dependency>
<!-- socket.io客户端 -->
<dependency>
<groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId>
<version>1.0.0</version>
</dependency>
yml配置
# netty-socketio 配置
socketio:
host: 0.0.0.0
port: 30916
# 设置最大每帧处理数据的长度,防止他人利用大数据来攻击服务器
maxFramePayloadLength: 1048576
# 设置http交互最大内容长度
maxHttpContentLength: 1048576
# socket连接数大小(如只监听一个端口boss线程组为1即可)
bossCount: 1
workCount: 100
allowCustomRequests: true
# 协议升级超时时间(毫秒),默认10秒。HTTP握手升级为ws协议超时时间
upgradeTimeout: 1000000
# Ping消息超时时间(毫秒),默认60秒,这个时间间隔内没有接收到心跳消息就会发送超时事件
pingTimeout: 6000000
# Ping消息间隔(毫秒),默认25秒。客户端向服务器发送一条心跳消息间隔
pingInterval: 25000
config配置
@Slf4j
@Configuration
public class SocketIoConfig {
/**
* socketio server 主机地址 设置主机名,默认是0.0.0.0
*/
@Value("${socketio.host}")
private String host;
/**
* socketio 端口
*/
@Value("${socketio.port}")
private Integer port;
/**
* socket连接数大小&