Google Chrome默认使用Web Sockets

原创|其它|编辑:郝浩|2009-12-11 13:44:53.000|阅读 798 次

概述:从Google Chrome的developer channel释放的4.0.249.0版本开始,Web Sockets已经可用并默认开启了。Web Sockets是“网络的TCP”,它是Web Applications 1.0中下一代网络应用程序双向通信技术标准的一部分。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

从Google Chrome的developer channel释放的4.0.249.0版本开始,Web Sockets已经可用并默认开启了。Web Sockets是“网络的TCP”,它是Web Applications 1.0中下一代网络应用程序双向通信技术标准的一部分。正如在WebKit 和 Chromium的设计文档中所描述的那样,我们已经实现了这一功能。

Web Sockets API使Web应用程序使用服务器端进程直截了当的处理双向通信。为达到此目的,现在开 发者一般使用的是XMLHttpRequest(XHR),但是XHR使得开发与服务器进行来回通信的程序过于复杂。XHR基于异步的HTTP,而且因为 你需要使用像长挂(long-hanging)GET来从服务器发送数据到客户端浏览器,简单的任务因此变得复杂了。

与XMLHttpRequest截然 不同的的是,Web Sockets在你的浏览器里面提供一个真正的双向沟通渠道,一旦得到Web Socket连接,你就能通过直接调用send()方法从浏览器发送数据到服务器,并且使用onmessage的这个事件处理句柄接收数据。

代码示例:

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 Sockets API,还需要”web socket protocol“(“网络套接字协议“)。该协议不是原始的TCP,因为它需要给浏览器提供”same-origin”的安全模型。它也 不同于HTTP,因为web socket的传输模式与HTTP的”请求-响应模式”(request-response model)是不同的。使用新的web socket协议将会更节省带宽,因为它不像XHR和长挂GET,web socket每一次连接建立都不会交换头信息。当然你可能以为要使用这个新的API和协议来使编程模型更简单和更有效的利用带宽,就必须要重新实现服务器端的程序。其实不用担心,因为我们还开发了pywebsocket,你可以把它作为Apache的一个拓展模块(extension module)使用,也可以把它作为一个独立的WEB服务器程序使用。

从现在开始你可以使用Google Chrome和pywebsocket来进行Web Socket应用程序开发了。我们非常乐意听到您对于新的API和协议的意见。这个协议尚未定型,它仍然在IETF的讨论之中,所以早期测试使用者的反馈将是非常重要的。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP