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

时间:2009-05-31 16:39:24

标签: http gwt html5 google-wave

我确信Wave不会每毫秒轮询一次服务器,以确定其他用户是否输入了某些东西......那么我怎样才能看到对方输入的内容?而且不会占用带宽。

9 个答案:

答案 0 :(得分:38)

持久性HTTP,Comet

保持HTTP连接活动并在键入字符时发送字符

* 2014年编辑:另外,请查看WebSocket和HTTP/1.1 Upgrade header。浏览器在2010年左右开始实现这一点,所以我将其添加到原始答案中。

答案 1 :(得分:6)

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

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

答案 2 :(得分:4)

Server Push in GWT

服务器推送是等待,响应,关闭,重新打开范例:

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

  • 回复:请求的数据为
    可用,用它回复

  • 关闭:然后,关闭连接。

  • 重新打开:一旦您的GWT代码收到回复,立即打开一个新连接以查询下一个事件。

答案 3 :(得分:3)

在第55分钟(接近结尾)观看视频Google Wave: Powered by GWT

问:如何实现持久连接,长生活http连接

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

问:我们可以下载和播放这个平台或库吗?

答:不确定。不要这么认为

P.S。:这就是他所说的。对我而言,它没有多大意义(“未来计划”与“目前使用”)。任何以英语为母语的人都可能想验证我是否正确转录了它?

答案 4 :(得分:1)

纯粹推测,但它可能是使用HTML 5规范中的Server Side DOM事件吗?

答案 5 :(得分:1)

WebSockets的全部原因是让浏览器保持对服务器开放的双向套接字,以便可以使用实时通信。当有人在另一端键入时,在wave客户端中,它会触发发送到服务器的事件,服务器依次查看谁还应该接收事件并将事件传递给他们,在这种情况下是键入的字母。

WebSocket和Comet是不同的。

答案 6 :(得分:0)

将来可能会成为websocket的彗星。因为它可以在Firefox 3.5中运行,而且从我读过的内容中,websocket仅在FF的夜间版本中可用...我可能是错的,因为它似乎在IE中根本不起作用。

答案 7 :(得分:0)

我花了一些时间对Google Wave客户端代码进行逆向工程(http://antimatter15.com/misc/read/的无耻插件,这是一个只读的公共客户端,适用于所有公共浪潮的google wave,而不需要更多的机器人或小工具一个月前谷歌没有启动升级时有用。)

无论如何,谷歌使用GWT框架与谷歌闭包库的某些方面(实际上是开源和记录),他们使用goog.net.BrowserChannel库,其中的评论也用于gmail内的聊天功能

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

答案 8 :(得分:-1)

我认为他们使用ajax请求。做一个异步的XMLHttpRequest,当服务器有东西要发送你的浏览器时,注册的javascript回调获取数据并做任何事情。所以基本上浏览器会请求下一个事件,处理它,无限期地重复。