上文我们选择使用netty作为网络通信的技术框架,接下来面临的问题是,客户端和服务端使用socket还是websocket来通信?
从技术角度来说,两种方式都能实现我们的功能需求。
因为我们评估的角度则主要是便利性和灵活性上。
如使用socket,则客户端需要单独启动一个进程。当然也可以变通,在主体web应用进程中单独启动一个线程来处理,即内嵌。
如使用websocket,则客户端既可以将其直接内嵌于web应用系统中,也可以使用浏览器端js实现的websocket或移动端app的websocket技术。
因此,我们选择使用websocket。
将来可以给客户端提供一个封装好的sdk,直接进行业务开发即可,无需关注登录、注销、断线重连等。