Google Wave中的实时实时打字工作如何?

我确信Wave不会每毫秒轮询一次服务器,以确定其他用户是否input了某些内容…因此,如何查看对方键入的内容? 而不占用带宽。

持久的HTTP, Comet

保持您的HTTP连接处于活动状态,并在键入字符时发送字符

* 2014年编辑:另外,看看WebSocket和HTTP / 1.1升级头 。 浏览器在2010年左右开始实施,所以我将其添加到原始答案中。

他们可能使用Web套接字,也就是服务器发送的事件: http : //www.w3.org/TR/websockets基础协议可以在IETFfind(作为草稿)。

更新:似乎WebSockets还没有任何实现; 和来自Google I / O的video (转到11:00)讨论了长时间的HTTP GET请求。

服务器推入GWT

服务器推送是等待,响应,closures,重新开放的范例:

  • 等待:当GWT代码打电话给你的服务器的一些你还没有的数据时,冻结(等待)

  • 回应:一旦请求的数据是
    可用,回应

  • closures:然后,closures连接。

  • 重新开放:一旦你的GWT代码收到响应,立即打开一个新的连接,以查询下一个事件。

请参阅videoGoogle Wave:在55分钟(靠近结尾)的时候由GWT提供支持

问:你如何实现持久连接,长寿命的http连接

答:未来计划:HTML5 Web套接字。 长期。 这是我们目前使用的。

问:是否有一个平台或图书馆,我们可以下载和玩?

答:不确定。 不要这样想

PS:这就是他所说的。 对我来说,没有什么意义(“未来计划”与“目前使用”)。 任何母语为英语的人可能想validation我是否正确转录了它?

纯粹的猜测,但它可以使用HTML 5规范中的服务器端DOM事件?

WebSockets的全部原因是让浏览器保持一个双向套接字向服务器开放,以便可以使用实时通信。 当一个人在另一端input时,在一个wave客户端中,它触发一个事件发送到服务器,而服务器反过来看看谁也应该接收事件并把它传递给事件,在这种情况下是键入的字母。

WebSocket和Comet是不同的。

现在websocket可能是未来的彗星。 因为它在Firefox 3.5中工作,从我读过的websocket只能在FF的每晚构build中…我可能是错误的,虽然…因为它似乎无法在IE中工作。

我花了一些时间对Google Wave客户端代码进行反向工程( http://antimatter15.com/misc/read/ ,这是一个只读的公共客户端,用于所有公共客户端,无需使用机器人或小工具在一个月前谷歌没有推出升级版时更有用)。

无论如何,Google将GWT框架与Google Closure库(实际上是开放源代码和文档)的某些方面一起使用,并且它们使用goog.net.BrowserChannel库,其中来自评论的库也用于gmail中的聊天function。

http://closure-library.googlecode.com/svn/docs/closure_goog_net_browserchannel.js.html

我会假设他们使用ajax请求。 做一个XMLHttpRequest,这是asynchronous的,当服务器有东西要发送你的浏览器的JavaScriptcallback注册获取数据,并做任何事情。 所以基本上浏览器请求下一个事件,处理它,无限重复。

Interesting Posts