近日,微软发布了 HTML5 Labs ,旨在为.NET 开发者提供一个平台,可以运行使用了不稳定的 Web 标准规范的应用原型。其意图在于拉紧与开发者社区的关系,并且尽最大可能实现草案规范。首先发布的两个原型是 IndexDB(基于 Web 规范草案的一个应用,用于在浏览器中存储大容量的结构化数据)和一个示例性的 WebSocket 实现。
微软的实现
从微软站点下载的内容包含了一个.NET 实现,其中有:
- WCF 4.0 的服务器端实现
- 用于 WebSocket 的 WCF 模型原型
- 一个 Silverlight 4 的客户端实现
- 一个.NET 4.0 的客户端实现
- 将 Silverlight 转换为 JavaScript 的 HTML 桥
- 一个 Web 聊天示例
- 一个股票报价示例
WebSocket 草案
WebSocket 是个草案协议,用于定义双向全工的通信协议,以便让 Web 浏览器和 Web 服务器能够无需通过 HTTP 协议就可以实现相互间的通信。Web 浏览器和 Web 服务器都需要实现 WebSocket 协议。一旦浏览器与服务器之间建立好初始连接后就可以开始通信了。如果采用,那么 WebSocket 将会代替目前开发者所使用的 HTTP 长轮询机制。目前的 WebSocket API 处于 W3C Web 应用工作组的管理之下,而 IETF 则拥有工作草案。
目前,FireFox 4、Chrome、Opera 11、Safari 5 以及IE 8 与IE 9 已经实现了WebSocket 草案。Apple 甚至在最新发布的iOS 4.2 中实现了WebSocket,而开发者则必须得等待Windows Phone 7 和Android 的支持。
WebSocket 所经受的挫折
上个月初,由于安全原因,FireFox 4 和 Opera 初步禁止了 WebSocket 实现。问题并不是出现在 Web 浏览器端,也不是 WebSocket 本身的问题,而是大多数公司与企业防火墙缓存代理的糟糕实现。在 Firefox 中,我们可以通过 about:config 重新启用 WebSocket,只需启用 network.websocket.override-security-block 选项即可。人们所达成的共识是最终采用 WebSocket 可以在一定程度上减少目前的安全问题,但也有一些人认为 XMPP 完全可以解决这些问题。
评论