WebSocket相关注解使用说明【SpringBoot篇-1】

注解说明

@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

最大允许帧载荷长度

 欢迎关注作者微信公众号

WebSocket相关注解使用说明【SpringBoot篇-1】

上一篇:Netty优雅退出


下一篇:Netty-FastThreadLocal快在哪里呢?