美文网首页
webSocket初探

webSocket初探

作者: emilyCandy | 来源:发表于2020-04-19 18:29 被阅读0次

一、WebSocket介绍与原理

WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信。一开始的握手需要借助HTTP请求完成。

原理

WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。

-- 连接过程

  • 浏览器、服务器建立TCP连接,三次握手
  • WebSocket握手
  • 浏览器发送请求
  • 服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据
  • 断开TCP连接
    -- 如下图所示


    websocket

二、WebSocket与HTTP的关系

相同点

  • 都是一样基于TCP
  • 都是应用层协议

不同点

  • WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的
  • WebSocket是需要握手进行建立连接的
    如下图所示:


    websocket

三、WebSocket JS Client

1、WebSocket属性

props.png

2、WebSocket事件

WX20200419-173139@2x.png

3、 创建WebSocket 实例

example

4、收发数据

  • 收发数据
connection.send("hello world!")
  • 接受数据
ws.onmessage = data => {
    console.log(data.data)
}
  • 错误处理
    通过onerror函数进行回调
ws.onerror = e => { 
  console.log(ws.readyState, 'websocket.readyState onerror')
}
  • 关闭事件
ws.onclose = data => { 
  console.log(ws.readyState,'关闭时状态') 
}

四、WebSocket Node Server

  • 建立Node Http Server
var http = require('http')
var server = http.createServer((request,response) =>{} )
  • 监听端口
server.listen(3000, () => {
  console.log('server is listening on port 3000')
  })
  • 建立webSocket Sever
var websocket = require('websocket').server
var wsServer = new webSocket({httpServer: server})

总结

WebSocket在用于双向传输、推送消息方面能够做到灵活、简便、高效,但在普通的Request-Response过程中并没有太大用武之地,比起普通的HTTP请求来反倒麻烦了许多,甚至更为低效。比如某些场景只需要简单的Request-Response,如果换做WebSocket还需要增加一个请求标识RequestId,增加成本。每项技术都有自身的优缺点,在适合它的地方能发挥出最大长处,而看到它的几个优点就不分场合地全方位推广的话,可能会适得其反。

相关文章

  • 2020-04-03

    ## webSocket初探 ## 目录 - 为什么WebSocket - 什么是WebSocket - WebS...

  • websocket初探

    Websocket 是什么? WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(...

  • websocket初探

    今天是想分享一下关于websocket在nodejs里面的相关实践。 websocket相关的知识大家在搜索引擎上...

  • Websocket初探

    Websocket是一种在单个TCP连接上进行全双工通信的网络协议,是HTML5新增的协议。那么为何要使用Webs...

  • webSocket初探

    一、WebSocket介绍与原理 WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与...

  • 初探和实现websocket心跳重连

    初探和实现websocket心跳重连 心跳重连缘由 在使用websocket过程中,可能会出现网络断开的情况,比如...

  • WebSocket 初探(一)

    WebSocket WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通...

  • WebSocket 协议初探

    前言 公司项目使用WebSocket作为主要的请求方式,知其然也要知其所以然,会用也需要知道它的基本原理,所以写此...

  • websocket初探学习分享

    本文主要是使用的心得,参考的网址是websocket,本例中使用的是Websocket-Node 服务器模式,本地...

  • WebSocket使用初探(Tornado+Nginx)

    使用场景 在web开发中有时候需要实时获取数据,可以采用的方法也很多,比如ajax轮询,长连接等。之前项目中有一个...

网友评论

      本文标题:webSocket初探

      本文链接:https://www.haomeiwen.com/subject/bmpovhtx.html