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

西安有哪些网站建设外包公司百度搜索引擎的网址是多少

西安有哪些网站建设外包公司,百度搜索引擎的网址是多少,图片分享网站源码,做私彩网站多少钱Websocket的基本概念 Websocket是一个“应用层协议”,和HTTP地位是对等的。都是基于传输层的TCP实现的一个广泛被使用的应用层协议。这个协议可以实现服务器主动给客户端推送数据这样的功能。 websocket报文格式 简单了解一下Websocket的报文格式: FIN表…

Websocket的基本概念

  Websocket是一个“应用层协议”,和HTTP地位是对等的。都是基于传输层的TCP实现的一个广泛被使用的应用层协议。这个协议可以实现服务器主动给客户端推送数据这样的功能。


websocket报文格式

简单了解一下Websocket的报文格式:

FIN表示是否要关闭websocket。在应用层要通过Websocket的FIN来触发TCP的FIN。与TCP的FIN是两码事。

RSV保留位:三个保留位。现在还不用,以后可能有用。

opcode操作码:描述了当前这个websocket数据帧,是起到啥作用的。比如取值为0x1表示是个文本数据,取值为0x2表示是个二进制数据。

MASK表示是否开启掩码操作。掩码操作主要是为了避免“缓冲区溢出”。

payload length:就是载荷。也就是数据报上要携带的具体数据。

   payload length 有三种模式:

    1)7 bit      2)16bit     3)64bit

最初的7bit的payload length < 126,此时是模式1。如果7bit的值是126,此时是模式2,16bit生效。如果7bit的值是127,此时是模式3,64个bit生效了。


websocket的握手过程

在浏览器与服务器开始建立连接的时候,还是先发送HTTP请求,这个HTTP请求中会带有一些特殊的header。connection:表示连接升级。即将应用层协议升级成websocket。服务器会返回一个响应,响应中带有是否同意升级的header。

后续websocket连接就建立好了,接下来就使用websocket进行数据传输了。

:HTTP响应中的状态码101,表示”协议切换“。“websocket是基于HTTP协议来实现的”这种说法是错误的。

基于Websocket编写代码

在Java中有两种方式来使用websocket:

1.使用tomcat提供的原生websocket api。

2.使用Spring提供的websocket api.

接下来基于Spring的websocket api编写代码:

首先要在pom.xml文件中引入依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>

接下来编写服务器代码:

1)创建一个类作为WebSocketHandler

@Component
public class TestWebSocketAPI extends TextWebSocketHandler {@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {//这个方法会在webscoket连接建立之后,被自动调用System.out.println("TestAPI 连接成功");}@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {//这个方法是在websocket收到消息的时候,被自动调用的System.out.println("TestAPI 收到消息:" +message.toString());//session是个会话,里面就记录了通信双方是谁.(session中就持有了websocket的通信连接)session.sendMessage(message);}@Overridepublic void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {//这个方法是在连接出现异常的时候,被自动调用的System.out.println("TestAPI 连接异常");}@Overridepublic void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {//这个方法是在连接正常关闭后,被自动调用的System.out.println("TestAPI 连接关闭");}

 继承TextWebSocketHandler后,就可以重写一些方法.

2)把上述类的实例,注册到spring里面,配置路由

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Autowiredprivate TestWebSocketAPI testWebSocketAPI;@Autowiredprivate WebSocketController webSocketController;@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {//通过这个方法,把刚才创建好的Hanlder类给注册到具体的路径上//此时当浏览器,websocket的请求路径是"/test" 的时候,就会调用到TestWebSocketAPI这个类里的方法//registry.addHandler(testWebSocketAPI,"/test");registry.addHandler(webSocketController,"/WebSocketMessage")//通过注册这个特定的http拦截器,就可以把用户给HttpSession中添加的Attribute键值对//往WebSocketSession 里也添加一份.addInterceptors(new HttpSessionHandshakeInterceptor());}
}

客户端的代码编写:

//编写js使用websocket的代码//创建一个websocket示例let websocket = new Websocket("ws://127.0.0.1:8080/test");//给这个websocket注册上一些回调函数websocket.onopen = function(){//连接建立完成后,就会自动执行案例console.log("websocket 连接成功");}websocket.onclose = function(){//连接断开后,自动执行到console.log("websocket 连接断开");}websocket.onerror = function(){//连接异常时,自动执行到console.log("websocket 连接异常");}websocket.onmessage = function(e){//收到消息时,自动执行到console.log("websocket 收到消息" + e.data);}let messageInput = document.querySelector('#message');let sendButton = document.querySelector('#send-button');sendButton.onclick = function(){console.log("websocket 发送消息" + messageInput.value);websocket.send(messageInput.value);}

以上,关于Websocket,希望对你有所帮助。

http://www.wooajung.com/news/23788.html

相关文章:

  • 盐城市建设银行网站市场营销专业就业方向
  • 设计制作小车二教案网络优化工程师前景如何
  • WordPress如何建小语种网站产品营销方案
  • 做网站联系电话今天最新新闻10条
  • 国外html5模板网站室内设计培训班学费一般多少
  • 购物网站怎么建设阿拉营销网站
  • 做动车哪个网站查郑州关键词排名顾问
  • 个人做网站开发色盲测试图看图技巧
  • 网站开发容易找工作吗百度快照seo
  • 手机怎么做动漫微电影网站成品网站1688入口网页版怎样
  • 做网站公众号全网优化推广
  • 页面模板只有注册的人可以弄吗seo网站课程
  • 良品铺子的网站建设目标自己可以做网站推广吗
  • 中山网站建设服务网络优化工程师招聘信息
  • 广州做网站的哪家好南宁seo渠道哪家好
  • 营销型公司网站免费网站推广网站短视频
  • 做全网营销型网站建设核心关键词
  • 怎样做网站流量统计seo修改器
  • 浙江省建设安全监督站的网站河北关键词seo排名
  • 网站关键词优化怎么做信息流广告优化
  • 在国内做电商网站需要什么审核网站seo查询
  • ae做动画教程网站怎么在网络上推广
  • 珠海房地产网站建设上海今天刚刚发生的新闻
  • 手机企业网站多少钱网站销售怎么推广
  • 热铁盒网页托管b2b网站推广优化
  • 怎么给网站做优化杭州排名优化公司电话
  • 注册网站需要什么手续谷歌seo一个月费用需要2万吗
  • 织梦做商城类网站好做吗网上怎么做广告
  • 网件路由器登录密码百度seo新算法
  • 海珠区网站建设站长seo