我正在开发一个 Web 应用程序,想知道哪种方法适合我的项目。
基本上,我想向用户显示一些通知,这些通知来自对其他服务器的请求。我的 Node.js 应用程序获取所有信息,然后将其传播给用户,并将副本保存到 MongoDB 中。
这个想法相当简单,但在阅读了有关方法的信息后,我找到了以下两种技术:
Ajax:客户端会一直检查服务器上是否有新内容。这可以通过使用 jQuery AJAX GET 请求访问我的服务器 API(每 30/60 秒)来完成。
Socket.io:客户端连接一次,然后维护永久 TCP 连接(实时性更高)。
现在我已经解释了情况,我有以下问题:
Ajax 会不会太多请求?如果我们将应用扩展到 100 用户并且每分钟要对服务器进行一次检查,那么将会产生 100 个查询。用 Socket 是否更"便宜" 一些?
Socket.io 对移动设备会有问题吗?带宽和性能。服务器的响应始终是 JSON 格式的信息。
我读到说现在可能会使用 now.js,但似乎该项目不再受支持,所以不确定使用它是否是个好主意。
这两种方法的缓存如何?我考虑为每个用户创建一个缓存文件,并通过 Node.js 在服务器端更新。我想这可以与 Ajax 很好地配合使用,但 Socket.io 呢?
Socket.io 是否完全不兼容许多浏览器?我的应用程序更专注于移动设备,我认为这可能会让我考虑选择 Ajax。
有什么替代方案推荐吗?
希望这能澄清我的思路并帮助其他处于同样境况的人 :) 谢谢
setInterval
жҲ–setTimeout
гҖӮжҳ“дәҺзҗҶ解并дҝқжҢҒжңҚеҠЎеҷЁж— зҠ¶жҖҒгҖӮ - AJcodez