3

我有一个 GPS 车队管理应用程序,我认为它会从使用 node.js 中受益匪浅。我刚开始研究 node.js,仍然认为我还有很多东西要学,但希望能得到您的建议和指导。

为了让您了解我们当前的设置:

java 应用程序接收、编译和解析 gps 记录到 mySql db。通过我们的应用程序,用户每 6 秒查询一次数据库,以获取特定 gps 单元的最后一条记录。白天有大约 900 万条记录插入到数据库中。

所以我想做的是在我们的java应用程序中使用和包含node.js,并利用它将gps数据发送到客户端浏览器,而无需将其查询到数据库中。换句话说,我正在考虑做一个小功能来检查 gps id(总共约 5000 个 id)并与客户端 id(总共 200 个)进行比较,然后将其发送到所需的 node.js 通道。

如果我对 node.js 没有太多经验,如果您能告诉我我的逻辑是否合理并且 node.js 是正确的方法,我将不胜感激?

谢谢,

4

1 回答 1

0

如果您已经在使用 Java,为什么不使用 CometD(http://cometd.org/)之类的东西,它具有与 Socket.io 相同(或相似)的推送功能,并且它已经基于 Java。如果您使用的是 Jetty 以外的 java 容器,Atmosphere ( https://github.com/Atmosphere/atmosphere ) 是另一个不错的选择,它有很多容器支持。

一般来说,我认为你的设计对于“实时”来说有点缺陷。当您获得更新时,如果他们已连接并且对信息有有效的“订阅”,您应该直接将它们推送给客户。您仍然可以更新数据库,但为什么数据库是“推送”模型中此信息的中央票据交换所?在并行更新数据库时,直接推送到某种 websocket 样式的解决方案会更有意义。然后查询数据库的唯一人是登录新会话以获取“最后历史点”的用户,并且所有后续更新都被推送而无需任何数据库查询。

有人有什么想法吗?

于 2013-11-29T03:41:01.010 回答