WebSocket+CDN

WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议,本质上是一个TCP协议

已经有了HTTP协议,为什么还需要WebSocket?

因为HTTP的通信只能由客户端发起,而无法做到服务器主动向客户端推送信息。这种单向请求的特点,导致如果服务器有连续的状态变化,客户端就很难获取,只能采用轮询的方式,即每隔一段时间,就发送一个询问,了解服务器有没有新的信息,最典型的场景就是聊天室。但是轮询的效率低,非常浪费资源,所以WebSocket出现了

WebSocket使得客户端与服务器之间的数据交换变得简单,允许服务端主动向客户端推送数据,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输

 

 WebSocket特点:

1.建立在TCP协议之上,服务器端的实现比较容易

2.与HTTP协议有着良好的兼容性,默认端口也是80和443,并且握手阶段采用HTTP协议,因此握手时不容易屏蔽,能通过各种HTTP代理服务器

3.数据格式比较轻量,性能开销小,通信高效

4.可以发送文本,也可以发送二进制数据

5.没有同源限制,客户端可以与任意服务器通信

6.协议标识符是ws(如果加密,则为wss),服务器网址就是URL

<!DOCTYPE HTML>
<html>
   <head>
   <meta charset="utf-8">
   <title>菜鸟教程(runoob.com)</title>
    
      <script type="text/javascript">
         function WebSocketTest()
         {
            if ("WebSocket" in window)
            {
               alert("您的浏览器支持 WebSocket!");
               
               // 打开一个 web socket
               var ws = new WebSocket("ws://localhost:9998/echo");
                
               ws.onopen = function()
               {
                  // Web Socket 已连接上,使用 send() 方法发送数据
                  ws.send("发送数据");
                  alert("数据发送中...");
               };
                
               ws.onmessage = function (evt) 
               { 
                  var received_msg = evt.data;
                  alert("数据已接收...");
               };
                
               ws.onclose = function()
               { 
                  // 关闭 websocket
                  alert("连接已关闭..."); 
               };
            }
            
            else
            {
               // 浏览器不支持 WebSocket
               alert("您的浏览器不支持 WebSocket!");
            }
         }
      </script>
        
   </head>
   <body>
   
      <div id="sse">
         <a href="javascript:WebSocketTest()">运行 WebSocket</a>
      </div>
      
   </body>
</html>

 

CDN:Content Delivery Network内容分发网络,就是在用户和服务器之间加一个缓存机制,根据地理位置让用户到最近的服务器访问。

CDN是一组分布在多个不同的地理位置的WEB服务器,用于更加有效的向用户发布内容,在优化性能时,会根据距离的远近来选择 。当CDN服务器中缓存有用户请求的数据时,就可以从CDN直接返回给浏览器,因此就可以提高访问速度。

 

posted @ 2020-04-21 09:30  ajjoker  阅读(1457)  评论(0)    收藏  举报