背景:
项目需要服务端主动推送数据到客户端,于是使用了Websocket,结果发现,在搭建Websocket过程中报错了。
解决:
首先我们要知道Java后端,搭建Websocket服务有多种Websocket可选,比如OkhttpClient-websocket,Netty-websocket,包括SpringBoot也有自己的Websocket依赖(需要引入jar包)
我这个问题是在使用SpringBoot集成的Websocket过程中出现的:
原先的代码
在项目启动的时候PicturePushWebsocketServer会自动创建一个实例,然后个错误是由于PicturePushWebsocketServer这个类没有设置无参的构造方法,或者无参构造方法是非Public导致的。
这里我们把PicturePushWebsocketServer的无参构造函数访问权限改为Public
再次启动程序完美运行
最后:
大家在使用SpringBoot集成的Websocket的时候可能会有很多需要注意的点,不然就会出现Bug,或者项目跑不起来。
一:我们的Websocket是和Spring集成的所以要被IOC容器管理要加上@Componnent注解
不然会出现 No mapping for GET / websocket这个错误
二:@ServerEndpoint也是必须的
三:要配置Websocket的断点(在IOC容器中实例化ServerEndpointExporter这个类)