如何在不同计算机上的用户之间共享网站上的实时更新?

时间:2012-05-17 22:03:29

标签: php javascript ajax session ssh

我正在尝试为网站用户(比如学生和老师)找到一种方式来共享一个安全连接,在这种连接中,两个网站都可以查看一个页面上的实时更新。 从研究中我得出结论,可以使用ajax和javascript执行一些实时更新。

但是我很难过用户如何共享一个连接,只有两个用户会查看网站上发生的更新(例如绘图板的flash动画)。我也很困惑你甚至会开始建立这样的连接。

我看过php会话和cookies,但我不确定我是否做了正确的研究。 关于两个特定用户如何共享安全连接的任何指针,其中只有两者都可以查看实时更新。我不想要一个简洁的回答。我正在寻找特定于php的函数和语法的具体细节。我很感激你的帮助,如果你给我很好的答案,我会给你评价!

5 个答案:

答案 0 :(得分:2)

您无法将其一个客户端的安全连接(例如HTTPS)共享到一台服务器。

如果两个客户端都已登录并且在浏览器中运行了后台AJAX任务,是否可以让每个客户端每隔几秒“拉”一次,为两个用户显示相同的数据?

这将要求“绘图板”更新也连续发送回服务器以与其他客户共享更新的数据。我确信会有一个事件可以用来触发数据发布(例如鼠标上移)。

如果性能问题,您需要使用更好的服务器技术,如Java,它能够在请求之间保持会话状态,而不必持久存储到数据库。

答案 1 :(得分:0)

你可以看一下ajax推送技巧。我曾经在管理员发布消息时使用了彗星,而且每个登录的人都看到该消息出现在他们的屏幕上。我不知道彗星是否支持PHP。我只在JSP中使用它。只需在Google中搜索“ajax推送”。

答案 2 :(得分:0)

Flash允许用户之间的连接,我认为他们将它们称为套接字 如果你想使用Ajax等,你需要一个支持push的服务器端技术 Node是这方面的标准,您可以免费设置Heroku实例。

还有其他人,你需要在开始学习应用程序之前学习工具。

在众多概述中,您可能会对此感兴趣:
http://arstechnica.com/business/2012/05/say-hello-to-the-real-real-time-web/?1

答案 3 :(得分:0)

发生这种情况的几个很好的例子:

您可以使用的技术(具有不同的浏览器支持)

据我所知,实际上只能通过WebSockets将数据从服务器推送到Web浏览器客户端(当它从另一个客户端收到内容时会这样做)。其他机制要么需要浏览器插件,要么需要独立的应用程序。

然而,使用Comet(通过AJAX),您可以通过定期轮询服务器获取数据来真正接近推送数据。然而,与传统轮询相反(例如,客户端每5秒请求一次数据),使用Comet原则,服务器将持续定期请求人质,例如最多30秒。在数据或达到超时之前,服务器不会发回数据。这样,在这30秒内,服务器接收的任何数据都可以立即推送回其他客户端。在此之后,客户开始新的30秒会议,等等。

尽管Comet和WebSockets都应该与Apache提供的PHP后端一起使用。我建议你研究一下NodeJS(作为服务器技术)。

互联网上有关于Comet的很多信息,我建议你谷歌吧,也许从维基百科开始。

Comet的伟大之处在于它更多的是原则而非技术。它使用我们已有的(使用AJAX的简单HTTP请求),因此浏览器支持非常广泛。

您也可以进行组合,如果支持则使用套接字并回退到Comet。

答案 4 :(得分:-1)

我相信你已经调查过了。认为这可以通过ajax来实现,这是误导相信网站的两个用户可以通过javascript进行通信。

如您所知,javascript发生在客户端上,而ajax本质上是“在没有页面更改或刷新的情况下与服务器通信”。

网站的两个用户之间的通信必须通过服务器 - php和一些选定的数据存储区进行。

希望这不是简洁的。 欢呼,罗布