当前位置: 首页 > news >正文

东莞网站建设选菲凡网络吉林网站建设公司

东莞网站建设选菲凡网络,吉林网站建设公司,搭建租号网的网站,中国纪检监察报网官网调用注意&#xff1a; 1、端口一定要是可以访问的。 2、依赖必须注意和其他版本冲突&#xff0c;比如redis的springboot starter包&#xff0c;会与5.0版本冲突。 <netty.version>4.1.74.Final</netty.version> <dependency><groupId>io…

调用注意:

1、端口一定要是可以访问的。

2、依赖必须注意和其他版本冲突,比如redis的springboot starter包,会与5.0+版本冲突。

 <netty.version>4.1.74.Final</netty.version>            
<dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>${netty.version}</version>
</dependency>

首先创建socket服务


@Component
@Slf4j
public class NettyWebSocketServer extends Thread {public static String MsgCode = "GBK";public Integer port=8099;@Overridepublic void run() {startServer();}private void startServer() {EventLoopGroup bossGroup = null;EventLoopGroup workGroup = null;ServerBootstrap serverBootstrap = null;ChannelFuture future = null;try {//初始化线程组bossGroup = new NioEventLoopGroup();workGroup = new NioEventLoopGroup();//初始化服务端配置serverBootstrap = new ServerBootstrap();//绑定线程组serverBootstrap.group(bossGroup, workGroup).channel(NioServerSocketChannel.class).childHandler(new WebSocketChannelInitializer());future = serverBootstrap.bind(new InetSocketAddress(port)).sync();log.info(" *************Web Socket服务端启动成功 Port:{}*********** ", port);} catch (Exception e) {log.error("Web Socket服务端启动异常", e);} finally {if (future != null) {try {future.channel().closeFuture().sync();} catch (InterruptedException e) {log.error("channel关闭异常:", e);}}if (bossGroup != null) {//线程组资源回收bossGroup.shutdownGracefully();}if (workGroup != null) {//线程组资源回收workGroup.shutdownGracefully();}}}}

创建WebSocketChannelInitializer,配置请求目录、handle类,以及请求的最大内容

public class WebSocketChannelInitializer extends ChannelInitializer<SocketChannel> {protected void initChannel(SocketChannel socketChannel) throws Exception {ChannelPipeline pipeline = socketChannel.pipeline();pipeline.addLast(new HttpServerCodec());pipeline.addLast(new ChunkedWriteHandler());pipeline.addLast(new HttpObjectAggregator(5000));pipeline.addLast(new WebSocketServerProtocolHandler("/ws"));pipeline.addLast(new TextWebSocketFrameHandle());}
}

channelRead0方法可以处理收到的消息,并回复,如果实现聊天功能需要记录channel,然后通过channel来回复


@Slf4j
public class TextWebSocketFrameHandle extends SimpleChannelInboundHandler<TextWebSocketFrame> {@Overrideprotected void channelRead0(ChannelHandlerContext ctx, TextWebSocketFrame msg) throws Exception {log.info("收到消息:" + msg.text());ctx.channel().writeAndFlush(new TextWebSocketFrame("收到客户端消息"));}@Overridepublic void handlerAdded(ChannelHandlerContext ctx) throws Exception {log.info("handlerAdded:" +ctx.channel().id().asLongText());}@Overridepublic void handlerRemoved(ChannelHandlerContext ctx) throws Exception {log.info("handlerAdded:" +ctx.channel().id().asLongText());}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {log.error("异常发生");ctx.close();}
}

web调用的地址为:ws://localhost:8099/ws

http://www.yayakq.cn/news/511609/

相关文章:

  • 广州网站建设价格网址大全官网下载
  • 做网站的科技公司如何设计网站做网站用什么软件
  • 装修公司网站asp源码北京在线建站模板
  • 建站专家网站建设系统百度关键词优化大
  • 深圳网站建设vr知识做网站外包公司
  • 微芒科技网站建设topwordpress页脚版权
  • 大连自助建站广州seo网站优化培训
  • 湛江师范学院网站开发技术建设公司企业评语
  • 免费网站容量大营销型网站源码
  • 学校能建设网站吗网站建设开发免费咨询
  • 南宁建行 网站wordpress适用于任何网站吗
  • 做网站 看什么书网站网页制作公司网站
  • 网站设计轮播图需要吗24小时网站开发 pdf
  • 华茂达建设集团网站图片怎么做网站背景
  • 网站建设shwzzz网站的线下推广怎么做的
  • 吉粤建设工程股份有限公司网站上海网站建设咨
  • 安徽专业网站建设大全推荐宿迁做网站电话
  • 做化妆招生宣传在那些网站可以做中国国家人才培训网官网
  • 网站建设详细设计网站seo月报
  • 校园二手交易网站建设方案丰台深圳网站建设公司
  • 网站联盟是什么意思邢台精品网站建设
  • 网站建设的进度大型企业展厅设计公司
  • photoshop网站模板下载wordpress手机端底部导航
  • 青岛网站建设谁家好一些php彩票网站建设源码
  • 专做国外商品的网站海口可信的海南网站建设
  • 绍兴做网站的公司wordpress 导航图片
  • 网站建设中应注意哪些问题用WordPress做一个落地页
  • 网站微信开发口碑营销论文
  • 免费制作主图的网站wordpress 修改评论函数
  • 建立石墨碳素网站怎么做网站开发用哪些技术