websocket基础使用,我就不多说了,我的是用注解方式实现的。
也就实现了基本功能,写了客户端和服务端,保持长连接,传输json数据。
这里有一个点需要特别的注意。
我们写系统的时候,常规是要进行DB操作的,为了后期出问题,从数据库看出问题的来源,从而快速解决问题。
但是,就是在这个地方。
我是先发送WS数据后,在进行DB操作。
理论上也都是这样想的,我发出去了啥,我就保存啥,如果先保存的话,万一没发出去咋整?
可是就是因为这一常规想法,导致了一个大坑。
为了保证WS数据交互不会出乱子,肯定是要定义一个uuid之类的东西,保证两边发送和回复有字段可依。
所以,我在发送WS数据后,进行DB操作,对方返回的结果数据给我了,我要更新DB。
但是,WS回复数据太快,导致我的DB insert操作还没结束,就返回了,此时,我也同时进行这个update操作。
就这样,包了空指针异常。