首页 > 试题广场 >

WebSocket的实现和应用

[问答题]

1. 是什么?

一种基于HTTP协议的网络通信协议。


2. 为什么需要它?

    WebSocket的出现,主要是用于解决HTTP1.1的两个问题:实时通信、服务器无法主动向客户端响应数据。
    实时通信大家都很容易理解,主要分析一下第二点问题。举个例子,我们想要查询天气,HTTP协议就必须要客户端主动向服务器发送请求来查询天气,而不能服务器向客户端推送天气状态。而WebSocket就解决了这一问题,WebSocket可以在建立连接后,即使客户端不发送请求,也能主动响应数据。WebSockt属于服务器推送技术的一种,当服务器想要主动向客户端推送消息,只有HTTP协议是远远不够的,或者说实现起来非常麻烦。


3. 要明白一个概念:服务器可以主动发送消息 与 服务器可以主动发起连接请求是两码事。举个例子:谁先打电话,和打了电话,谁先开口,是完全不一样的。WebSocket协议就是可以让服务器在打通电话后先开口,而主动打电话的过程,仍旧需要客户端发起HTTP请求。


WebSocket的特点:

  1. 建立在 TCP 协议之上,服务器端的实现比较容易。
  2. 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
  3. 数据格式比较轻量,性能开销小,通信高效。
  4. 可以发送文本,也可以发送二进制数据。
  5. 没有同源限制,客户端可以与任意服务器通信。
  6. 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

编辑于 2021-09-30 11:39:56 回复(0)

webSocket是HTML5的一种新协议,先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,服务器与客户端通过此TCP连接进行实时通信,实现了服务器与客户端的双向通信。

应用场景:需要提供多个用户相互交流或者实时的展示服务器端需要经常变动的数据,如社交类应用,在线教育等。

发表于 2019-09-29 15:36:08 回复(0)
<p>webSocket是Html 5推出的一种新协议,先是在通过http协议完成三次握手之后建立了一个TCP连接,服务器于客户端通过该tcp连接进行实时通信,实现了服务器于客户端的双向实时通信</p><p>应用场景:直播,实时聊天</p>
发表于 2020-05-18 21:19:16 回复(0)
<p>通过http建立握手后建立tcp长连接,实现双向数据通信</p>
发表于 2020-08-29 14:49:23 回复(0)
websocket的通信实现:浏览器利用http协议与服务器进行第一次握手,告知服务器使用websocket进行通                                   信,后面的通信协议转变成websocket。
websocket协议是应用层协议,需要IP地址 + 端口号进行访问。
客户端API中提供了WebSocket对象,并且该对象具有普遍的事件和方法;连接的状态。
服务端websocket的实现:如果服务器没有该配置文件,需要自己动手写并且一直在服务器上运行。

发表于 2020-04-02 23:47:14 回复(0)