5

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

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

我查看了 intp php 会话和 cookie,但我不确定我是否在做正确的研究。关于两个特定用户如何共享安全连接的任何指针,其中实时更新仅由他们两个人查看。我不想要一个简洁的回应。我正在寻找特定的细节,例如特定于 php 的函数和语法。感谢您的帮助,如果您给我好的答案,我会给您打分!

4

5 回答 5

2

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

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

这将需要“绘图板”更新也不断地发送回服务器,以与其他客户端共享更新的数据。我敢肯定会有一个事件可以用来触发数据的发布(例如鼠标向上)。

如果性能是一个问题,您会希望使用更好的服务器技术,例如 Java,它能够在请求之间保持会话状态,而无需持久化到数据库。

于 2012-05-17T22:12:27.850 回答
0

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

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

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

于 2012-05-17T22:15:36.387 回答
0

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

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

据我所知,只有使用 WebSockets 才能真正将数据从服务器推送到 Web 浏览器客户端(当它从另一个客户端接收到内容时会这样做)。其他机制需要浏览器插件或独立应用程序。

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

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

互联网上有很多关于彗星的信息,我建议你google一下,也许从维基百科开始。

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

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

于 2012-05-17T22:18:37.493 回答
0

您可以查看 ajax 推送技术。我曾经使用过彗星,管理员发布消息,每个登录的人都看到该消息出现在他们的屏幕上。我不知道彗星是否支持PHP。我只将它与 JSP 一起使用。只需在 Google 中搜索“ajax push”即可。

于 2012-05-17T22:09:37.293 回答
-1

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

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

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

希望那不是简洁。干杯,罗伯

于 2012-05-17T22:13:11.610 回答