我正在尝试制作一个与 gtalk 交互的网络聊天应用程序。成功从我的应用程序向 gtalk 用户发送消息。如果 gtalk 用户从另一端 ping 我,我也可以在我的服务器上接收消息,但问题是我如何知道有消息在等待。我只能想到每 5 秒或什么的 ajax 命中。有没有更好的方法来实现它?
谢谢你的时间。
我正在尝试制作一个与 gtalk 交互的网络聊天应用程序。成功从我的应用程序向 gtalk 用户发送消息。如果 gtalk 用户从另一端 ping 我,我也可以在我的服务器上接收消息,但问题是我如何知道有消息在等待。我只能想到每 5 秒或什么的 ajax 命中。有没有更好的方法来实现它?
谢谢你的时间。
据我所知,您真正需要的是Comet 解决方案之一。您的选择取决于您计划支持的应用程序架构和浏览器。
如果您可以只支持主流浏览器,我建议为此使用网络套接字,这里有一个快速演示 - http://html5demos.com/web-socket。
根据您的问题,我认为您正在搜索类似推送邮件系统的东西,也就是说,您正在尝试从服务器推送到浏览器。但是,我认为没有比每 5 秒命中一次 ajax 更好的方法了。
但是,在 HTML5 中你有socket。您可以从以下链接中获取有关套接字的更多信息:
http://en.wikipedia.org/wiki/WebSocket
https://stackoverflow.com/questions/4262543/what-are-good-resources-for-learning-html-5-websockets
因此,考虑到各个方面,您的选择会更好。
在 HTML 5 之前,不。你必须投票。
这有几个原因(归结为 Web、Web 浏览器和 HTTP 的工作方式),但最简单的考虑方法是 Web 和 HTTP 以请求/响应模式运行;也就是说,来自网络浏览器的请求被发送到返回响应的网络服务器,然后连接被切断。服务器无法与浏览器重新建立联系;浏览器必须返回到服务器。