但是我被卡住了,不知道用户如何共享一个连接,只有这两个用户才能查看网站上发生的更新(例如画板的闪存动画)。我也不确定该如何开始设置这样的连接。
我已经研究了php会话和cookie,但我不确定我是否在做正确的研究。请给我一些指针,告诉我两个特定用户如何共享一个安全连接,在实时更新中只能由他们两个人看到。我不想要简略的回答,请给我具体的细节,例如php中特定的函数和语法。感谢您的帮助,如果您给出好的答案,我会给您评分!
您不能将安全连接(例如HTTPS)从一个客户端共享到另一个服务器。
如果两个客户端都已登录并在浏览器中运行后台AJAX任务,那么让每个客户端每隔几秒钟“拉取”相同的数据以供两个用户显示是否可接受?
这将需要将“绘图板”更新连续发送回服务器,以与其他客户端共享更新后的数据。我确定会有一个事件可以用来触发数据的发布(例如,当鼠标抬起时)。
如果性能是一个问题,您需要使用更好的服务器技术,如Java,它能够在不必持久化到数据库的情况下保持请求之间的会话状态。
Flash允许用户之间建立连接,我认为他们称之为sockets。
如果您想使用Ajax等技术,您需要一种支持推送的服务器端技术。
在这方面,Node是标准,您可以免费设置Heroku实例。
还有其他工具,甚至在开始学习应用程序之前,您需要先学习这些工具。
在众多概述中,这可能会引起您的兴趣:
http://arstechnica.com/business/2012/05/say-hello-to-the-real-real-time-web/?1
这种情况发生的一些很好的例子:
您可以使用的技术(具有不同的浏览器支持)
从服务器向Web浏览器客户端推送数据(当它从另一个客户端接收到东西时会这样做)据我所知,只有使用WebSockets才能实现。其他机制要么需要浏览器插件,要么需要独立应用程序。
然而,通过AJAX Comet技术可以非常接近通过轮询服务器周期性地获取数据来推送数据。但是与传统的轮询不同(例如客户端每5秒请求一次数据),采用Comet原则时,服务器将把这个周期请求托管30秒钟,直到有数据或达到超时时间为止才回发数据。因此,在这30秒钟内,服务器接收到的任何数据都可以立即推送回其他客户端。然后客户端开始一个新的30秒会话,以此类推。
虽然使用PHP后端由Apache服务的Comet和WebSockets都可以工作。但我建议使用NodeJS(作为服务器技术)。
关于Comet有很多信息可以在互联网上查找,我建议您谷歌搜索,也可以从维基百科开始了解。
Comet的好处在于它更像是一种原则而不是一种技术。它使用了我们已经拥有的东西(带有AJAX的简单HTTP请求),因此浏览器支持非常广泛。
你还可以组合使用,如果支持则使用sockets,并回退到Comet。
我相信你已经研究过这个问题了。认为可以通过ajax实现两个网站用户之间的通信是一种误解,因为javascript只在客户端执行。
正如你所知,ajax本质上是“在不改变或刷新页面的情况下与服务器通信”。
网站两个用户之间的通信必须通过服务器-php和一些选择的数据存储来实现。
希望这不会太简洁。 祝好,罗布