注解说明
@ServerEndpoint
当ServerEndpointExporter类通过Spring配置进行声明并被使用,它将会去扫描带有@ServerEndpoint注解的类 被注解的类将被注册成为一个WebSocket端点 所有的配置项都在这个注解的属性中 ( 如:@ServerEndpoint("/ws")
@OnOpen
当有新的WebSocket连接进入时,对该方法进行回调
注入参数的类型:
1. Session
2. HttpHeaders
3.ParameterMap
@OnClose
当有WebSocket连接关闭时,对该方法进行回调 注入参数的类型
1.Session
@OnError
当有WebSocket抛出异常时,对该方法进行回调
注入参数的类型:
1.Session
2.Throwable
@OnMessage
当接收到字符串消息时,对该方法进行回调
注入参数的类型:
1.Session
2.String
@OnBinary
当接收到二进制消息时,对该方法进行回调
注入参数的类型:
1.Session
2.byte[]
@OnEvent
当接收到Netty的事件时,对该方法进行回调
注入参数的类型:
1.Session
2.Object
配置
所有配置想都在这个注解的属性中
编号 | 属性 | 默认值 | 说明 |
1 |
path | “/” | WebSocket的path,也可以用value来设置 |
2 | host | "0.0.0.0" | WebSocket的host,“0.0.0.0”即是所有本地地址 |
3 | port | 80 | WebSocket绑定端口,如果为,则使用随机端口(端口获取可见多端点服务) |
4 | bossLoopGroupThreads | 0 | bossEventLoopGroup的线程数 |
5 | workerLoopGroupThreads | 0 | workEventLoopGroup的线程数 |
6 | useCompressionHandler | false | 是否添加WebSocketServerCompressionHandler到pipline |
7 | prefix | "" | 当不为空时,即是使用application.properties进行配置。 |
8 | optionConnectTimeouMillis | 30000 | 与Netty的ChannelOption.CONNECT_TIMEOUT_MILLIS一致 |
9 | optionSoBacklog | 128 | 与Netty的ChannelOption.SO_BACKLOG一致 |
10 | childOptionWriteSpinCount | 16 | 与Netty的ChannelOption.WRITE_SPIN_COUNT一致 |
11 | childOptionWriteBufferHighWaterMark | 64*1024 |
与Netty的ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK一致, 但实际上是使用ChannelOption.WRITE_BUFFER_WATER_MARK |
12 | childOptionWriteBufferLowWaterMark | 32*1024 |
与Netty的ChannelOption.WRITE_BUFFER_LOW_WATER_MARK一致, 但实际上是使用 ChannelOption.WRITE_BUFFER_WATER_MARK |
13 | childOptionSoRcvbuf | -1(即未设置) |
与Netty的ChannelOption.SO_RCVBUF一致 |
14 | childOptionSoSndbuf | -1(即未设置) | 与Netty的ChannelOption.SO_SNDBUF一致 |
15 | childOptionTcpNodelay | true | 与Netty的ChannelOption.TCP_NODELAY一致 |
16 | childOptionSoKeepalive | false | 与Netty的ChannelOption.SO_KEEPALIVE一致 |
17 | childOptionSoLinger | -1 | 与Netty的ChannelOption.SO_LINGER一致 |
18 | childOptionAllowHalfClosure | false | 与Netty的ChannelOption.ALLOW_HALF_CLOSURE一致 |
19 | readerIdleTimeSeconds | 0 |
与IdleStateHandler中的readerIdleTimeSeconds一致, 并且当它不为0时,将在pipeline中添加IdleStateHandler |
20 | writerIdleTimeSeconds | 0 |
与IdleStateHandler中的writerIdleTimeSeconds一致, 并且当它不为0时,将在pipeline中添加IdleStateHandler |
21 | allIdleTimeSeconds | 0 |
与IdleStateHandler中的allIdleTimeSeconds一致, 并且当它不为0时,将在pipeline中添加IdleStateHandler |
22 | maxFramePayloadLength | 65536 |
最大允许帧载荷长度 |