【发布时间】:2011-08-05 15:14:14
【问题描述】:
假设我正在同步 HTML 页面上的文本,该页面存储在 localStorage 中,从计算机 A 到计算机 B。当用户在计算机 A 上编辑文本时,我向服务器发送请求,并告诉它更改了哪些文本。有什么方法可以让服务器告诉计算机 B 有新文本,而无需计算机 B 继续检查?我读过关于 Comet 的文章,但我尽量不使用任何库。有办法吗?另外,如果您要推荐 Comet,您能否举一个使用纯 JavaScript 和 Comet 的简单示例?
我有一个想法,但我不知道它是否可行。在计算机 B 上,我发送了一次请求,并让服务器的文件一直延迟响应,直到有一些新文本。这样,它就像长轮询,但请求最终会超时。如果有办法将超时设置为从不,这将变得容易得多。那么,有人有什么想法吗?
P.S.- 我只想使用 JavaScript 和 PHP,并尽量避免使用库。不过,如果您知道可以使用 JS 和 PHP 执行此操作的库,请告诉我。
另外,我知道有这样的问题,但我找到的答案并不令人满意。
哦,如果有人知道这里的聊天是如何运作的,你能告诉我吗?
tl;dr:我想从服务器向 HTML 页面发送请求,或者让 HTML 发送一个请求,该请求在创建适当的响应之前一直保持活动状态。
【问题讨论】:
-
这取决于您是否使用 HTML5?如果是这样,您可以使用原始套接字从每个客户端与您的服务器建立连接,如果不是,那么您将不得不让消费者(计算机 b)执行持续检查更新。另外,这是用于生产现场、学校项目还是个人项目?这对你如何去做会有所不同:)
-
我正在使用 HTML5(正如我所提到的,我正在使用 localStorage。:))。这是一个个人项目。实际上是一个 Chrome 扩展,所以我需要它是可靠的。
-
由于有使用 Flash hack 和附加功能的“localStorage”实现,我没有做出这样的假设 :)。以下是一些可能对您有用的链接; phpclasses.org/package/… 和 ibm.com/developerworks/web/library/x-ajaxxml8/… 这些涵盖了基本“聊天”应用程序的 PHP、MySQL 和 Ajax。应该是一个很好的起点。
-
哦,是的,我忘记了那些黑客。无论如何,感谢您的链接。稍后会检查一下。
标签: php javascript comet