我正在尝试在通过Openfire Server交换XMPP数据的两个C#桌面客户端之间实现xmpp聊天/协作。问题是我必须通过HTTPS保护这些客户端和服务器之间的通信是否有特定的库或最适合实现这一目标的策略。说实话,我很难找到一个从这里开始的地方。
编辑*确实只需要通过SSL或其他适当形式的加密来保护通信,而不是使用HTTPS协议进行通信。
这里真正的任务是尝试使用SSL将我的客户端连接到Openfire。虽然在网络上有特别是Ignite Realtime网站上的论坛帖子,但我还没有找到关于如何正确配置openfire服务器和客户端以确保此连接的明确解释。
答案 0 :(得分:2)
您应该查看Jingle和libjingle。我没有使用过这些但我知道你需要使用Jingle来进行点对点连接(XMPP最常用的是服务器进行聊天)。 libjingle库是C ++,但可以使用P / Invoke从C#代码调用。
根据您对Openfire的评论,您应该在http://xmpp.org/xmpp-software/libraries/查看C#/ .NET的库列表,在http://www.ag-software.de/agsxmpp-sdk/查看一个受欢迎的库。这些是符合标准的库,其中包含显示如何连接到任何XMPP服务器的示例。除非您想使用XMPP服务器提供的特殊扩展,否则您应该可以开始使用这些扩展。如果你仍然在苦苦挣扎,那么请查看XMPP和Jabber上的O'Reilly书籍(一位同事写下那本书)
答案 1 :(得分:0)
以下是来自code的相关Jabber-Net,其使用system.net.security.SslStream:
m_stream = m_sslStream = new SslStream(m_stream,
false,
ValidateServerCertificate,
ChooseClientCertificate);