了不起的蕾欧娜 2021-07-27 17:50 采纳率: 0%
浏览 70
已结题

netty怎么连接多个websocket?刚接触netty,不知道怎么写

@Override
        protected void initChannel(SocketChannel ch) throws Exception {
            //流水线管理通道中的处理程序(Handler),用来处理业务
            //http编解码器
            ch.pipeline().addLast(new HttpServerCodec());
            ch.pipeline().addLast(new ObjectEncoder());
            //以块的方式来写的处理器
            ch.pipeline().addLast(new ChunkedWriteHandler());
            /*
             * 说明
             * 1、http数据在传输过程中是分段的,HttpObjectAggregator可以将多个段聚合
             * 2、当浏览器发送大量数据时,就会发送多次http请求
             */
            ch.pipeline().addLast(new HttpObjectAggregator(8192));
            /*
            说明:
            1、对应webSocket,它的数据是以帧(frame)的形式传递
            2、浏览器请求时 ws://localhost:58080/xxx 表示请求的uri
            3、核心功能是将http协议升级为ws协议,保持长连接
            */
            ch.pipeline().addLast(new WebSocketServerProtocolHandler(webSocketPath, WEBSOCKET_PROTOCOL, true, 65536 * 10));
            //自定义的handler,处理业务逻辑
            ch.pipeline().addLast(webSocketHandler);
        }
    });
  • 写回答

2条回答 默认 最新

  • 了不起的蕾欧娜 2021-07-28 10:58
    关注

    最终还是改了写法,使用springboot去整合websocket,没有使用netty

    评论

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 创建了问题 7月27日