我正在尝试将Google Docs所具有的实时协作功能添加到HTML的可编辑文本区域中。例如,这将允许2到3个用户协作编辑相同的文本区域。如何解决这个问题,或者有没有可以使用的JavaScript库?(我使用PHP、mySQL和JavaScript/AJAX/jQuery)。
发布于 2012-05-08 08:16:01
为了促进多个Web客户机之间的实时更新,您需要使用一种技术,该技术通过使用Comet或Websockets解决方案来利用Web的请求/响应周期。
为了保持文本区的更新,您需要从所有3个客户端建立到服务器的长期HTTP连接或Websocket连接。每个文本区域都需要一个keyup或keypress处理程序,当调用该处理程序时,会将字符通过流发送到服务器。当您的服务器检索到此数据时,它需要向其他两个连接的客户端返回响应。
然后需要通过使用最新数据更新textarea的value属性来处理响应。
我看到您正在使用PHP,我确实知道它支持comet。为了实现这样的解决方案,您需要设置comet (或Websockets)。
话虽如此,一个更基本的替代方案是使用轮询来实现所需的效果。这将涉及到所有3个客户端定期向服务器发出请求以检索更新。正如您可以想象的那样,轮询速度越快,应用程序的实时性就越好。然而,使用更快的轮询速率,您的应用程序将消耗更多的带宽和资源。
对于3个客户端,这可能是可行的,但对于任何涉及大量使用的严重应用程序,您肯定会想要研究Websockets或Comet。
要回答您关于Comet库的问题,请查看客户端的JavaScript解决方案的Dojo Cometd库。
https://stackoverflow.com/questions/10490799
复制相似问题