【问题标题】:Which one can I choose? SSH or AMQP?我可以选择哪一个? SSH 还是 AMQP?
【发布时间】:2011-06-11 10:54:26
【问题描述】:

我的应用程序在 Windows 中运行,并使用 C++/Qt 实现。

应用程序将调用部署在 Linux 服务器中的另一个应用程序,该应用程序又会调用一些第三方工具。 Linux 服务器应用程序会根据第三方工具的运行情况发送一些状态更新。通常第三方应用程序将运行数小时,更新将在各个阶段发送。除了状态更新之外,Linux 服务器可能还需要发送一些文件,Windows 客户端也会发送运行这些第三方工具所需的一些文件。

我计划在libssh2 中实现这一点,因为可以使用libssh2_channel_exec() 完成文件传输并且也可以执行应用程序。可以通过非阻塞套接字传输发送和接收更新。此外,传输必须是安全的,并且它们是经过密码验证的,所以我认为SSH 将符合我的要求。

我还研究了实现AMQP 的apache 的Qpid。消息似乎更适合我的状态更新,因为更新频率较低。但我不太确定安全连接、密码验证以及应用程序调用。

那么,我可以在这两者之间选择哪一个?或者还有其他更好的选择吗?我不太习惯网络编程,所以欢迎任何关于此的指针和链接..

【问题讨论】:

    标签: c++ networking ssh amqp


    【解决方案1】:

    您是否考虑过一些基于 Web 的解决方案,例如 XML-RPC、REST、SOAP 或其他?请注意,您可以拥有持续的网络连接和流式更新,也可以让您的客户根据需要随时要求更新。

    另外,我认为基于其中一些协议构建解决方案将使您更容易编码 - 当您拥有出色的库时,不需要一些低级解决方案。至于安全部分,我认为作为 HTTPS 协议一部分的 SSL 足够安全。当然你也可以使用混合方式,例如 SSH Tunel 来保护服务器并使用 SSH 密钥授权。

    但是,如果您确定要使用 SSH 或 AMQP,请使用第一个 - 我认为它具有更好的安全性。另外,尽量不要使用用户名/密码。而是使用上面提到的键。

    【讨论】:

      【解决方案2】:

      从 SSH 开始,然后考虑在上面分层其他协议。您可以使用 SSH 端口转发来创建与服务器的 VPN 连接,这样可能更容易使用 AMQP 或 0MQ 之类的东西。

      【讨论】:

        猜你喜欢
        • 2012-11-02
        • 2011-02-25
        • 1970-01-01
        • 2010-09-25
        • 2021-10-19
        • 2014-02-11
        • 1970-01-01
        • 2013-05-08
        • 2010-11-12
        相关资源
        最近更新 更多