服务端
服务端的实现,通常有两种方式:
一种用@ServerEndPoint注解来实现;第二种通过请求参数传递采方式,服务端的参数在拦截器中获取之后通过attributes传递给WebSocketHandler,可以添加拦截器在WebSocket连接建立和断开前进行一些其他操作。
其实第一种也就是前面说过的java封装的一种实现。因为在spring-boot中,需要把类注册到容器,还需要配置:
1 | //自动注册所有@ServerEndpoint注解声明的WebsocketEndpoint |
@ServerEndpoint实现的时候,可能会出现注入失败的问题,可以通过手动注入的方式来解决。
1 | ConfigurableApplicationContext applicationContext = new SpringApplication(Application.class).run(args); |
第二种实现就是和spring差不多,实现WebSocketHandler,或者更有可能扩展TextWebSocketHandler或BinaryWebSocketHandler。
示例:
pom:
1 |
|
java:
1 | //配置类 |
启动
客户端
客户端的实现,通常有html和java WebSocketClient两种方式,html前面已经有,这里用client实现一下:
1 | public class WebSocketClientDemo extends WebSocketClient { |
测试:
1 | public class ClientDemo { |
结果:
1 | 未打开 |