【问题标题】:NodeJS for realtime communication between website and desktop applicationNodeJS 用于网站和桌面应用程序之间的实时通信
【发布时间】:2014-09-28 00:45:26
【问题描述】:

我正在开发一个应用程序,其中(目前)一个桌面应用程序和一个网站运行一个“心跳”来检查数据库中的新命令。如果有很多用户同时从桌面应用程序和网站运行心跳,那么服务器可能会很重。 (我们在同一台服务器上运行了多个应用程序)

现在我正在考虑将 nodeJS 作为网站和 mysql 数据库之间的通信方法。桌面应用程序仍将使用心跳来检查与网站相同的数据库(桌面应用程序是用 C# 编写的)。

在安全性、可靠性等方面,在 nodeJS 之前是否有其他更受欢迎的实时通信解决方案?

使用 NodeJS 代替普通的 javascript setInterval 有什么缺点吗?

提前致谢/H

【问题讨论】:

    标签: javascript c# mysql node.js


    【解决方案1】:

    在安全性、可靠性等方面,在 nodeJS 之前是否有其他更受欢迎的实时通信解决方案?

    Node.js 是一个应用程序框架。概括所有 Node.js 应用程序的安全性、安全性和可靠性是不可能的。

    我正在开发一个应用程序,其中(目前)一个桌面应用程序和一个网站运行一个“心跳”来检查数据库中的新命令。如果有很多用户同时从桌面应用程序和网站运行心跳,那么服务器可能会很重。 (我们在同一台服务器上运行了多个应用程序)

    Node.js 不会神奇地让事情变得更有效率。这取决于您如何编写应用程序。无论如何,听起来您的数据库无论如何都会承担大部分负载,因此无论放在前面,都不会有太大的不同。无法确切地说出...您必须进行测试才能找到答案。

    使用 NodeJS 代替普通的 javascript setInterval 有什么缺点吗?

    这是一个毫无意义的问题。驾驶汽车而不是使用普通的油门踏板有什么好处吗?

    在我看来,您应该问的问题是关于您的服务器和应用程序之间的协议。听起来您正在尝试定期轮询数据库以获取新命令。如果您能提供帮助,我建议不要这样做。如果有新命令要运行,为什么服务器不通知客户端?为此,除了服务器应用程序和客户端应用程序都可以使用的协议之外,您可能还需要一个 pub/sub 系统(Redis 中内置了一个,如果这样可以让您更轻松)。 Socket.IO 可能是一个选择,但 .NET library 似乎已停产。您可以通过 TCP 执行简单的以行分隔的 JSON。

    【讨论】:

    • 对不起,如果我的问题有点分散,但我对 NodeJS 了解不多。是的,我试图轮询数据库以获取新命令,但正如您所描述的,如果有任何新命令,我希望服务器将命令发送到客户端。我认为 NodeJS 会帮助我,但也许它没有?我还认为 Socket.IO 和 NodeJS 应该一起使用,但也许不是这样?
    • Node.js 当然可以帮助你...我只是说 Node.js 只是一个平台。你用它做什么取决于你。 Socket.IO 和 Node.js 旨在一起使用。有适用于其他平台的 Socket.IO 客户端库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多