首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全的文档共享/聊天应用程序?

安全的文档共享/聊天应用程序?
EN

Stack Overflow用户
提问于 2012-03-15 11:40:43
回答 1查看 121关注 0票数 2

我和我的一个朋友使用Google Docs已经有一段时间了,但它似乎不再支持她的浏览器了,所以作为一个有趣的项目,我想我可以试着自己模仿它的功能。

到目前为止,我已经用Codeigniter (PHP)构建了一个工作传真,它在我的本地机器上工作得很好;但是,我正在尝试弄清楚这是否是释放给其他人的最有效的方法/最安全的方法。(请记住,这并不意味着这是一项公共服务;仅供主要2个人使用,可能最多只有3-4个人使用。)

应用程序的每个页面都有一个聊天室和一个视图,无论当前文档是什么,这些都是独立刷新的。聊天室基本上是从一个.txt文件中提取信息,该文件在用户每次提交消息时都会更新;聊天室每秒通过一个JQuery AJAX调用引用两次信息。(到目前为止,我没有费心去记录用户何时离开聊天,尽管我假设这将需要一个单独的投票。)

文档视图也是通过AJAX更新的,但是调用一个控制器函数来ping文档MySQL数据库;这个调用每秒发生一次,而且每次用户更新文档时都会发生。

显然,这必须是一个托管计划,可以容纳来自常规Javascript调用的流量,但抛开这一点,这是一个可以接受的方法来解决这个问题吗?它会对客户端(或服务器端)造成不必要的压力吗?有没有更好的方法?我非常非常自学,虽然我能够做出一些有效的东西,但我希望得到一些确认,证明我没有采取错误的方法。

谢谢!希望这个问题是有意义的;如果有必要,我很乐意详细说明。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-15 13:18:52

我认为轮询会导致可伸缩性问题,尽管对于这么小的环境来说这可能不是问题。

我也不是这方面的专家,但我怀疑如果可能的话,你想使用的模型是让你的服务器保持一个开放的套接字,这样事件(即其他人的编辑,甚至只是刷新数据库内容的信号)可以从服务器上推送出来,而不是需要轮询。为此,有一种称为Comet的技术。当然,您需要构建对这两者的支持,以防诸如强制代理或限制性防火墙之类的东西阻碍打开的套接字,并且您需要恢复到轮询。

在服务器端,优化优化。如果您正在进行轮询,请确保测试最后一次更新的时间戳,该时间戳保存在与您的数据分开的、较小的、索引正确的表中。

对于聊天,为什么不利用一些现有的工具呢?有像IRIS这样优秀的IRC客户端。使用IRC服务器也可能为多个用户提供更好的方式来协调他们的操作。例如,可能有一个以文档标识符命名的通道,该通道由一个JS处理程序加入,该处理程序通知其他人光标位置、挂起的编辑(以及由此需要刷新数据库中的文档)等。我并不是说这是最好的方法,但它至少是一个有趣的想法。

我很乐意看到你想出的代码!一个可用的多用户Google Docs克隆将非常受欢迎。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9713667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档