【发布时间】:2013-02-18 08:42:04
【问题描述】:
我正在开发一个基于 Springs MVC 和带有 Objectify 的 Google App Engine 的项目。
这个应用程序的主要功能是:如果有人向数据存储区发布新内容,那么它应该会自动发布到它所连接的浏览器,而无需刷新页面内容。基本上它是一个类似网站的新闻。发送到浏览器的数据是基于 REST API 的 JSON 数据。
为了实现这个功能,我想到了使用以下方法:
AJAX:我想过每 2-3 分钟使用一次 AJAX 调用来获得更新。但是这个解决方案似乎不可行,因为来自许多浏览器的许多 AJAX 调用导致许多数据存储读取操作。
Web Socket:这个概念对我来说很新。我不知道这件事。一些 pusher.com 使用此技术来建立此类连接。
现在我需要您的建议,使用上述两种方法中的哪一种,或者我也愿意接受其他解决方案。
【问题讨论】:
-
WebSocket 肯定比传统的 Ajax 更快、更高效,但是如果您使用 WebSocket,那么您可能仍然需要为不支持 WebSocket 的旧浏览器编写 Ajax 备份。
-
先生,您能给我推荐一些使用 web-sockets 的例子吗?我需要这个应用程序可以在移动浏览器上运行,所以我可能不需要编写 AJAX 代码。
-
也许你在使用通道 API。 developers.google.com/appengine/docs/java/channel
-
如果您希望将 PHP 用于后端,Google 的 phpwebsocket 是一个好的开始。请注意,代码虽然已经过时,但实际上并不起作用。尽管如此,所有组件都在那里,它应该让您朝着正确的方向思考。除了上面的链接,您还需要阅读并熟悉最新的WebSocket draft,以获得有关如何进行握手、屏蔽/取消屏蔽数据等的最新和最准确的信息。
标签: spring google-app-engine rest jquery websocket