Google Chrome现在支持Web Sockets



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代码
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.  
}  
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的支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值