首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用有限的工具集(没有websockets,线程数量有限)在客户端同步数据

使用有限的工具集(没有websockets,线程数量有限)在客户端同步数据
EN

Stack Overflow用户
提问于 2015-03-21 13:37:15
回答 1查看 71关注 0票数 1

目标我想要实现

我需要实现某种订阅事件方法。确切地说,人们可以在表中锁定单元格(更多的用户可以同时查看同一个表),当其他人锁定一个单元格时,需要更新表。(这样用户就不会尝试多次锁定同一个单元格。)我至少有45-50个用户。(有多个表(在数量有限的单独网页上,加载了使用JSON传输的AJAX,我将JSON编码在服务器端)。

限制、资源和思想

  • 我没有带宽和磁盘空间的限制。可用服务器的磁盘IO为2MB/s,内存为768 2MB(全部可用)。
  • 我必须支持一个旧版本的铬(我相信3),不支持websockets。我必须回到长时间投票或其他任何技巧上。
  • 该网页运行在共享主机上,限制为15个PHP进程。这意味着使用标准的长轮询技术只能支持页面上最多7-8个人,这对这个项目来说是不够的。
  • 此宿主提供程序无法使用Node.js。

我有以下想法:

使用频繁运行的CRON作业,我可以生成json字符串并将其写入文件--客户端可以定期下载json文件,并在发生更改时更新表。

我知道这听起来不太优雅,所以我决定在执行上面的计划之前四处询问。

谢谢你的任何想法/帮助,Bálint

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-21 15:03:16

有了这组服务器端的限制,您可能只想在客户机中使用轮询。客户端将发出一个ajax调用,要求在计时器上进行更新。服务器将在每次接收ajax调用时向客户端提供最新状态。您将不得不手动调整客户端轮询的频率,根据您想要支持的比例(更高的比例意味着轮询间隔之间的时间更长)以及该比例对服务器端限制的影响。

客户端轮询将不利于带宽的使用,因此您将不得不量化您可以在那里生活的内容(测量N个客户端在一定时间间隔内使用的带宽,并相应地调整轮询的频率)。

显然,更现代的技术,如持续连接的webSockets,甚至是长轮询,都会给您提供更好的响应能力和更低的带宽使用,但由于服务器端的限制,您似乎已经排除了这些技术。最好的解决方案是修复服务器端的限制。如果您使用socket.io,它将自动返回到不支持webSockets的客户端的长轮询。

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

https://stackoverflow.com/questions/29183341

复制
相关文章

相似问题

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