I am attempting to implement xmpp chat/collaboration between two C# desktop clients that exchange XMPP data via an Openfire Server.. The catch is that I must secure the communication between these clients and the server over HTTPS Is there a particular library or strategy that is best used in order to accomplish this. To by honest I’m having a difficult time even finding a place to start here.
Edit* Really just need to secure the communication via SSL or some other appropriate form of encryption not communicate using the HTTPS protocol.
The real task here is attempting to connect my clients to Openfire using SSL. While there are forum postings here and there across the web particularly on Ignite Realtime’s website, I have yet to find a a definitive explanation on how to properly configure both the openfire server and the client in order to secure this connection.
You should look at Jingle and libjingle. I have not used these but I understand you need to use Jingle to do peer-to-peer connections (XMPP most often uses a server for chat). The libjingle library is C++ but could be called from C# code using P/Invoke.
Based on your comment about Openfire you should check out the list of libraries for C#/.NET at http://xmpp.org/xmpp-software/libraries/, and a popular one at http://www.ag-software.de/agsxmpp-sdk/. These are standards-compliant libraries which include examples showing how to connect to any XMPP server. Unless you want to use a special extension available with an XMPP server you should be able to get started with these. If you are still struggling then check out the O’Reilly books on XMPP and Jabber (a colleague wrote that one)
Have you considered using WCF at all for this, or are you restricted to using XMPP? There are several chat examples available.