目前实现了直播间发送文字还有图片上传功能,然后可以进行文字通讯,图片的话上传保存到本地D:\nginx-1.14.2\html\netty项目照片\image,使用nginx映射。
nginx.conf location /image { root D:/nginx-1.14.2/html/netty项目照片; }
其他有一个很奇怪,就是ctx.channel.write()不会输出东西到客户端。
传输图片的话需要设置netty的传输长度,不然会报错
e.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));
其次我使用ChannelGroup进行群发,前端使用js websocket带上房间号,姓名,发送的信息等等。后端使用ObjectMapper对发送的消息进行拆解。
直接上代码吧:https://github.com/dajitui/netty-
反思:发送图片时,保存到服务器之后,想将文件流输出到客户端,无论哪种格式都输出不了,只能TextWebSocketFrame。
所以后面采用的方法是保存图片到服务器,返回一串链接。
后来问下美团基础架构师闪电侠,才明白ws是一种标准的协议,只能发送特定的格式,不能发送其他格式。