一个粗暴、丢人的帖子,使用vue、netty基于websocket的即时通讯系统。github:https://github.com/wangkeshan...site:http://47.105.88.240:8080/使用示例!!!最好使用手机。如果是PC浏览器,建议使用chrome,然后打开F12,然后ctrl+shift+m??进入移动设备模拟,否则无法完成右滑添加好友的操作!!!主要结构数据包结构为json形式:privateStringcommand;私有字符串traceId;私有对象数据;command表示数据包命令的类型,因为websocket协议是全双工的,不能像http协议那样采用问答的形式,所以对于客户端来说,是不可能把请求和响应联系起来的native协议,所以用traceId来判断,data是数据前端结构,如果是问答响应方式需要traceId,则封装req和对应的回调方法进入队列,如果resp响应,如果回调处理是单向的,则根据命令找到注册的处理方法处理后端结构体handler:pipeline.addLast(newIMIdleStateHandler());//空闲连接处理,超时关闭pipeline.addLast(newHttpServerCodec());//http协议编解码pipeline.addLast(newHttpObjectAggregator(65536));//聚合http请求中的chunk内容,pipeline.addLast(newChunkedWriteHandler());//聚合响应中的大量数据内容pipeline.addLast(newWebSocketServerCompressionHandler());//处理websocket扩展,判断协议升级pipeline.addLast(新的WebSocketServerProtocolHandler(WEBSOCKET_PATH,null,true));//会自动添加websockethandshakehandler,握手完成后添加websocketcodecpipeline.addLast(newHttpStaticFileServerHandler());//静态页面服务,pipeline.addLast(新的WebSocketFrameHandler());//业务流程启动方法示例:@Command(ADD_FRIENDS)publicclassAddFriendsServiceextendsBaseService
