jquery - 用于实时应用程序的 Socket.io

标签 jquery ajax node.js websocket socket.io

所以我还有几个月前构建的另一个项目。它目前使用 jquery 和 ajax,每 30 秒调用一次 php 脚本。 php脚本查询mysql并将结果传回显示。在此应用程序中,此人能够从数据库中添加/编辑/删除记录,并且当他们这样做时,数据库中的结果列表需要更新他们看到的列表。到目前为止,它似乎完成了这项工作,但展望 future ,数据库会变得更大,并且需要更加实时,这意味着不仅每 30 秒刷新一次,而且尽可能即时。

socket.io 会是这个问题的答案吗?我会简单地将 socket.io 与 nodejs 一起使用来创建服务器并发出事件来查询我的数据库并返回要显示的结果吗?然后在客户端有一个像每秒一样调用服务器套接字脚本的函数?那是使用 socket.io 的正确途径吗?如果是这样的话,如果我每秒运行一次关于服务器资源的过程,会不会有问题?

最佳答案

Would socket.io be the answer to this?

我的回答是 socket.io/node.js 在处理实时应用程序方面比当前形式的 PHP 要好得多。

Then on the client side just have a function that calls the server socket script like every second?

在 node.js 中,你不应该轮询信息,而是应该将信息推送给你(为此使用 redis pubsub 或 node.js 事件)。我建议你看看a pubsub snippet我在 stackoverflow.com 上对自己做了一些解释。要使代码正常工作,您需要安装 socket.io 0.6.x(0.6.18),因为最新的 socket.io 0.7.x 的 API 略有不同。

If so would there be a concern with this process if I ran it every second with regards to server resources?

就像我之前说的,使用 pubsub 语义。例如,您可以使用:

关于jquery - 用于实时应用程序的 Socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485624/

相关文章:

javascript - 如何仅在移动时控制每个 slider 值?

用于调用 Azure 自动化 Runbook Webhook 的 HTML 代码

javascript - 在另一个 Promise 的 .then() 中测试一个 Promise

javascript - Rails - 将 ajax 添加到部分, 'undefined method ` 渲染''

javascript - Node.js events.js : 163 throw er; when executing Jest with flag --runInBand

node.js - Google Pub/Sub 上的 GRPC 权限被拒绝 [错误 7]

jquery - 尝试将旋转文本置于 float div 中

jquery - css 将鼠标悬停在一个元素上更改另一元素的属性

javascript - jQuery - 使动态创建的 DIV 在单击时自行删除

javascript - AJAX 数据被发送到错误的 Django View