Google Chrome现在支持Web Sockets了

来源:csdn博客 分类: 文章浏览史 发布时间:2020-03-16 18:13:43 最后更新:2020-03-17 浏览:308
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-03-16 18:13:43

Web Sockets Now Available In Google Chrome
从Chrome 4.0.249.0开始支持Web Sockets,而且缺省设置为开启。Web Socket是Web上的TCP,为Web应用提供双向通信的下一代技术,是Web Applications 1.0标准的一部分。
Web Sockets要比现在广泛使用的XMLHttpRequest简单,通过XHR进行双向通信需要一些特别的技巧(例如长连接,轮询等),而Web Sockets为浏览器提供了真正的双向通信通道。一旦得到一个Web Socket连接,调用 send()方法就可以直接从浏览器发送数据到服务器,同时浏览器通过一个onmessage事件处理函数接收从服务器传来的数据。一个简单的例子:

Javascript代码

  1. if ("WebSocket" in window) {    
  2. var ws = new WebSocket("ws://example.com/service");    
  3.     ws.onopen = function() {    
  4. // Web Socket is connected. You can send data by send() method.  
  5.       ws.send("message to send"); ....    
  6.     };    
  7.     ws.onmessage = function (evt) { var received_msg = evt.data; ... };    
  8.     ws.onclose = function() { // websocket is closed. };  
  9. } else {    
  10. // the browser doesn't support WebSocket.  
  11. }  
if ("WebSocket" in window) {  
    var ws = new WebSocket("ws://example.com/service");  
    ws.onopen = function() {  
      // Web Socket is connected. You can send data by send() method.  
      ws.send("message to send"); ....  
    };  
    ws.onmessage = function (evt) { var received_msg = evt.data; ... };  
    ws.onclose = function() { // websocket is closed. };  
} else {  
    // the browser doesn't support WebSocket.  
} 


除了新的Web Socket API,浏览器使用新的web socket协议与服务器通信,该协议不是原始的TCP(因为它需要提供与浏览器来源相同的安全模型),也不是HTTP(因为它不同于HTTP的请求-响应模型)。与XHR不同的还有,该协议使用更少的带宽,(与HTTP相比,一旦连接建立,不需要再有消息头数据的交换)
要使用Web Socket(包括新的API,新的协议,更简单的编程模型,更高效的网络通信),我们还需要一个新的服务器实现,已有pywebsocket提供支持了,它能作为Apache扩展模块使用,也可以作为一个独立的服务器运行。
现在,至少可以通过Google Chrome和pywebsocket开始基于Web Socket的Web应用开发了。
不过Web Socket的协议还没有完全定稿,在IETF上仍在讨论。
Flash也实现了WebSockets的支持,因此实际上IE上也能使用,尽管是非原生支持。这里有个项目使其它浏览器通过Flash实现Web Socket的支持

php技术微信