【发布时间】:2018-12-31 15:24:29
【问题描述】:
更新:我的印象是,这甚至不是发布此内容的正确网站。如果有人能指出我正确的方向,我会很感激......
我有一个现有的 PHP+MySQL 应用程序,它不是为呈现“实时”或类似的实时数据而构建的。但现在我需要构建一种将近乎实时的数据拉入应用程序并保持页面上数据新鲜的方法。此实时数据仅适用于应用程序中的 1 页。
查看了诸如 socket.io 和基于 PHP 的 websockets 库之类的东西,但这似乎有点矫枉过正,因为数据基本上来自 1 个来源并交付给 1 个人(客户端)。多个其他用户可以运行此过程,但每个用户都会带来自己的数据端点。那是......就像一年之后的事情。不过想想也不错。理想情况下,系统上有成百上千的用户,提取他们的实时数据。所以我希望它尽可能精简和低影响。
用户必须经过身份验证和授权才能使用数据。这已经融入了当前系统。
获取数据的 API(已由其他供应商构建)也不是流式传输的。它设置在 20 秒的 cron 上,因此每 20 秒就有一次新数据可用,这满足了客户的需求。
我目前的计划是做这样的事情......
- 每 20 秒在 cron 上拉取数据、组织并存储到数据库中(完成)
- 调整 #1,使其还对数据进行任何额外的专有计算,并在服务器上编译 + 写入 JSON 文件(用户独有),这是前端所需的确切数据(其他页面需要数据库数据)
- 创建基于 PHP 的小型服务,用于验证客户端提供的 JWT 并读取 JSON 文件
- 使用 JWT 编写 AJAX 前端以每 X 秒从 #3 轮询端点以进行授权
这一切似乎有点像我在重新发明轮子,或者遗漏了什么。这是一个现有的基于 PHP 的应用程序 (LAMP) 的事实确实有一些限制因素,但我觉得必须有一种更有效的方法来处理这个......这对我来说很新。此外,我对将在 LAMP 堆栈上运行的其他技术持开放态度,如果它能让事情变得更好的话。
【问题讨论】:
-
有 4 种技术可以满足您的需求:AJAX、WebSockets、服务器发送事件和 WebRTC。但是,我强烈建议从简单的 AJAX 开始 - 过早的优化是邪恶的。
-
这个问题太笼统了。询问有关技术/软件等方面的建议也是题外话。如果您有计划,请进行一些尝试,如果您在尝试中遇到一些特定问题,请返回。
-
指南中这样写:What topics can I ask about here?。 “要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。”。关于什么技术最好的建议可能引发激烈的争论,而这不是本网站的用途。 SO 适用于您对现有代码有特定问题时(这要求您首先选择技术)。
-
@David 会让评论部分爆出无法评估质量的软件推荐。我自己也看到过这样的线程,通常它们没有任何意义。
-
“但这无助于人们试图决定哪种技术最适合他们的情况” - 我明白了,但 Stackoverflow 根本就不是问这种问题的地方问题,因为结果通常最终不会是建设性的。
标签: javascript php mysql real-time