中国开发网: 论坛: 程序员情感CBD: 贴子 775910
haitao
在Google Chrome中使用Web Sockets
在Google Chrome中使用Web Sockets

ugmbbc发布于 2009-12-11 11:13:34|2838 次阅读 字体:大 小 打印预览


感谢3秒-WEB的投递
从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的讨论之中,所以早期测试使用者的反馈将是非常重要的。

来自chromium官方博客http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html
翻译整理:3秒/3seconds.cn


——就是浏览器实现并提供给web应用使用的tcp连接吧?
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录