WebSocket

websocket

  1. 简介
    WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端
  2. 原理
    在实现websocket连线过程中,需要通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握手” 。在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
    在此WebSocket 协议中,为我们实现即时服务带来了两大好处:
    1. Header
      互相沟通的Header是很小的-大概只有 2 Bytes
    2. Server Push
      服务器的推送,服务器不再被动的接收到浏览器的请求之后才返回数据,而是在有新数据时就主动推送给浏览器。
  3. 浏览器端实现
// 创建一个Socket实例
var socket = new WebSocket('ws://localhost:8080'); 

// 打开Socket 
socket.onopen = function(event) { 
  // 发送一个初始化消息
  socket.send('I am the client and I\'m listening!'); 
  // 监听消息
  socket.onmessage = function(event) { 
    console.log('Client received a message',event); 
  }; 
  // 监听Socket的关闭
  socket.onclose = function(event) { 
    console.log('Client notified socket has closed',event); 
  }; 
  // 关闭Socket.... 
  //socket.close() 
};

socket.io

  1. 简介
    Socket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用。

  2. 使用

    1.客户端
      
    
    
    2.服务器端
    var app=express();
    var http=require('http').Server(app);
    var io=require('socket.io')(http);
    
    var data=[2.3,5,6,7];
    io.listen(8001);
    io.on('connection',function(socket){
        socket.emit('transfer',data);
    });

你可能感兴趣的:(html5,HTML5)