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

做网站技术好学嘛福州网络营销推广产品优化

做网站技术好学嘛,福州网络营销推广产品优化,网站屏蔽省份,购物网站常用功能模块介绍websocket的介绍#xff1a; WebSocket是一种在网络通信中的协议#xff0c;它是独立于HTTP协议的。该协议基于TCP/IP协议#xff0c;可以提供双向通讯并保有状态。这意味着客户端和服务器可以进行实时响应#xff0c;并且这种响应是双向的。WebSocket协议端口通常是80 WebSocket是一种在网络通信中的协议它是独立于HTTP协议的。该协议基于TCP/IP协议可以提供双向通讯并保有状态。这意味着客户端和服务器可以进行实时响应并且这种响应是双向的。WebSocket协议端口通常是80443。 WebSocket的出现使得浏览器具备了实时双向通信的能力。与HTTP这种非持久单向响应应答的协议相比WebSocket是一个持久化的协议。举例来说即使在关闭网页或者浏览器后WebSocket的连接仍然保持用户也可以继续接收到服务器的消息。 此外要建立WebSocket连接需要浏览器和服务器握手进行建立连接。一旦连接建立WebSocket可以在浏览器和服务器之间双向发送或接受信息。总的来说WebSocket提供了一个高效、实时的双向通信方案。 1、用netty构建websocket服务器 package org.tianfan.websocket;// WebSocketServer.javaimport io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpServerCodec; import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;public class WebSocketServer {private final int port;public WebSocketServer(int port) {this.port port;}public void run() throws Exception {EventLoopGroup bossGroup new NioEventLoopGroup();EventLoopGroup workerGroup new NioEventLoopGroup();try {ServerBootstrap b new ServerBootstrap();b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializerSocketChannel() {Overridepublic void initChannel(SocketChannel ch) throws Exception {ChannelPipeline p ch.pipeline();p.addLast(new HttpServerCodec());p.addLast(new HttpObjectAggregator(65536));p.addLast(new WebSocketServerProtocolHandler(/websocket));p.addLast(new WebSocketServerHandler());}});ChannelFuture f b.bind(port).sync();f.channel().closeFuture().sync();} finally {workerGroup.shutdownGracefully();bossGroup.shutdownGracefully();}}public static void main(String[] args) throws Exception {int port 8080;if (args.length 0) {port Integer.parseInt(args[0]);}new WebSocketServer(port).run();} } 我来解释一下上面的代码 p.addLast(new HttpServerCodec())添加HTTP服务器编解码器用于将数据转换成HTTP协议格式进行传输。p.addLast(new HttpObjectAggregator(65536))添加HTTP对象聚合处理器用于将HTTP请求或响应中的多个消息片段聚合成完整的消息。p.addLast(new WebSocketServerProtocolHandler(/websocket))添加WebSocket协议处理器用于处理WebSocket握手、消息传输等操作。p.addLast(new WebSocketServerHandler())添加WebSocket处理器用于处理客户端与服务器端之间的数据交换实现自定义的业务逻辑。 使用Netty框架中的WebSocketServerProtocolHandler处理器将HTTP升级为WebSocket协议。它创建了一个新的管道pipeline并将WebSocket处理程序添加到管道的尾部以便处理WebSocket协议的握手和帧。/websocket是WebSocket的URI路径它指定了WebSocket服务的相对地址该地址将在客户端请求连接时被指定。 package org.tianfan.websocket;import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;public class WebSocketServerHandler extends SimpleChannelInboundHandlerTextWebSocketFrame {Overridepublic void channelRead0(ChannelHandlerContext ctx, TextWebSocketFrame msg) throws Exception {// 处理消息System.out.println(Received message: msg.text());ctx.channel().writeAndFlush(new TextWebSocketFrame(Server received: msg.text()));}Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {// 添加连接System.out.println(Client connected: ctx.channel());}Overridepublic void channelInactive(ChannelHandlerContext ctx) throws Exception {// 断开连接System.out.println(Client disconnected: ctx.channel());}Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {// 异常处理cause.printStackTrace();ctx.close();} } 我来解释一下上面的代码 刚信息发过来的时候在服务端打印并写入前端。 2、前端客户端页面 !-- index.html --!DOCTYPE html html headmeta charsetUTF-8titleWebSocket Test/title /head bodyh1WebSocket Test/h1divinput typetext idmessage placeholderMessagebutton onclicksend()Send/button/divdiv idoutput/divscriptvar socket new WebSocket(ws://localhost:8080/websocket);socket.onopen function(event) {console.log(WebSocket opened: event);};socket.onmessage function(event) {console.log(WebSocket message received: event.data);var output document.getElementById(output);output.innerHTML p event.data /p;};socket.onclose function(event) {console.log(WebSocket closed: event);};function send() {var message document.getElementById(message).value;socket.send(message);}/script /body /html 运行结果
http://www.sadfv.cn/news/418815/

相关文章:

  • 成都微信网站设计wordpress外贸企业模板
  • 广州建设工程网站上海阳性增多
  • 网站有订单了有声音提醒怎么做网站做百度推广需要什么材料
  • 丹东站ps怎么做网站图片
  • 东莞网站建设选择菲凡网络动画设计专业介绍
  • 做网站的私活seo快速排名源码
  • 如何做自己产品网站wordpress 样式引用
  • 上海建设网站找哪家中简风格wordpress主题
  • 合肥做网站优化公司seo排名快速刷
  • windows做的ppt下载网站htm5网站建设
  • 寿光建设局网站丽水公司网站建设
  • 网站建设方案项目书网站建设员课程
  • 阿里巴巴上做网站要多少钱50强网站开发语言
  • wordpress导入网站宁波建材信息造价中心
  • 免费行情软件app网站大全下载安装wordpress 固态链接
  • 抖音评论点赞自助网站区块链微信小程序开发教程
  • 黄页网站推广服务网站建设与优化推广方案
  • 用php如何建设网站宠物网站页面设计创意国外
  • 常平东莞网站建设网站建设属于广告费么
  • 知名的金融行业网站开发营销策划的步骤有哪些
  • wordpress点击图片直接相册浏览seo优化课程
  • 大学生网站建设报告网站用什么技术实现
  • 网站设计设计方案人社局网站建设管理工作总结
  • 搜索关键词排名优化服务温州关键词优化工具
  • Paas网站建设python培训机构哪个好
  • 路由器通过域名解析做网站北京高端网站设计公司
  • 网站备案的要求学习网站 现状
  • 阿凡达网站设计wordpress 熊掌
  • 做商城的网站用什么框架好论坛内网站怎么建设
  • 专注网站建设16年大气企业网站织梦模板