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

5
我正在尝试找到一种方法,让网站的用户(比如学生和老师)共享一个安全连接,在一个页面上进行实时更新,并且两个用户都可以看到这些更新。通过研究,我得出结论,其中一些实时更新可以使用ajax和javascript来完成。
但是我被卡住了,不知道用户如何共享一个连接,只有这两个用户才能查看网站上发生的更新(例如画板的闪存动画)。我也不确定该如何开始设置这样的连接。
我已经研究了php会话和cookie,但我不确定我是否在做正确的研究。请给我一些指针,告诉我两个特定用户如何共享一个安全连接,在实时更新中只能由他们两个人看到。我不想要简略的回答,请给我具体的细节,例如php中特定的函数和语法。感谢您的帮助,如果您给出好的答案,我会给您评分!

你是否正在寻找类似于Google文档的东西,用户可以实时查看其他人所做的更改?或者一些共享屏幕应用程序?您需要更具体地说明您想要实现什么... - Alexis Pigeon
5个回答

2

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

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

这将需要将“绘图板”更新连续发送回服务器,以与其他客户端共享更新后的数据。我确定会有一个事件可以用来触发数据的发布(例如,当鼠标抬起时)。

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


0
你可以看一下 Ajax 推送技术。我曾经使用过 Comet,其中管理员发布消息,所有已登录的用户都会在屏幕上看到该消息。我不知道 Comet 是否支持 PHP,我只用过 JSP。在 Google 中搜索“ajax push”即可。

0

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

还有其他工具,甚至在开始学习应用程序之前,您需要先学习这些工具。

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


0

这种情况发生的一些很好的例子:

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

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

然而,通过AJAX Comet技术可以非常接近通过轮询服务器周期性地获取数据来推送数据。但是与传统的轮询不同(例如客户端每5秒请求一次数据),采用Comet原则时,服务器将把这个周期请求托管30秒钟,直到有数据或达到超时时间为止才回发数据。因此,在这30秒钟内,服务器接收到的任何数据都可以立即推送回其他客户端。然后客户端开始一个新的30秒会话,以此类推。

虽然使用PHP后端由Apache服务的Comet和WebSockets都可以工作。但我建议使用NodeJS(作为服务器技术)。

关于Comet有很多信息可以在互联网上查找,我建议您谷歌搜索,也可以从维基百科开始了解。

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

你还可以组合使用,如果支持则使用sockets,并回退到Comet。


-1

我相信你已经研究过这个问题了。认为可以通过ajax实现两个网站用户之间的通信是一种误解,因为javascript只在客户端执行。

正如你所知,ajax本质上是“在不改变或刷新页面的情况下与服务器通信”。

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

希望这不会太简洁。 祝好,罗布


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接