[jdev] GLOOX: BOSH +TLS+ PROXY

Kevin Smith kevin at kismith.co.uk
Thu Nov 22 14:33:34 UTC 2012


On Thu, Nov 22, 2012 at 1:44 PM, Taranbir Singh - ERS, HCL Tech
<Taranbir.Singh at hcl.com> wrote:
> We want to make GLOOX library to make BOSH+TLS+PROXY Connection.
> We are trying to make a connection with the combination BOSH +TLS + PROXY. Unfortunately things are not working, I have attached code and logs. Would request you help.
> Even we are okay to use some other library to make this connection via C++, please suggest.

Hi,
  Can't help with Gloox, but the equivalent Swiften code (
http://swift.im/swiften ) would be (I haven't checked this is exactly
correct by compiling it):

> ConnectionTCPClient* tcp_client = new ConnectionTCPClient( client->logInstance(), proxy_host, proxy_password);
> ConnectionHTTPProxy* http_proxy = new ConnectionHTTPProxy(client, tcp_client, client->logInstance(),bosh_server,bosh_port);
> http_proxy->setProxyAuth(proxy_user,proxy_password);
> ConnectionTLS* tls_connection= new ConnectionTLS(http_proxy,client->logInstance());
> ConnectionBOSH* bosh_connection = new ConnectionBOSH( client, tls_connection, client->logInstance(), bosh_server, xmpp_server);
> client->setConnectionImpl( bosh_connection );

#include <Swiften/Swiften.h>

using namespace Swift;

int main(int, char**) {
SimpleEventLoop eventLoop;
BoostNetworkFactories networkFactories(&eventLoop);
Client* client = new Client("me at server.lit", "mypassword",
networkFactories); /* Substituting the JID and password accordingly.
*/
ClientOptions options;
options.boshURL= URL::fromString("http://server.lit/http-bind/"); /*
Substituting the correct URL to the BOSH endpoint */
options.boshHTTPConnectProxyURL =
URL::fromString("https://wwwproxy.server.lit:8080/"); /* Substituting
the host/port for those of the proxy */
options.boshHTTPConnectProxyAuthID = "proxy username"; /* substituting
the user name needed to authenticate with the proxy. Remove this line
if the proxy doesn't require authentication */
options.boshHTTPConnectProxyAuthPassword = "proxy password"; /*
substituting the user password needed to authenticate with the proxy.
Remove this line if the proxy doesn't require authentication */
/* Insert here whatever handlers you want for receiving messages etc.
- see http://swift.im/swiften/guide/ */
client->connect(options);
eventLoop.run();
return 0;
}

Hope that helps.
Kev.


More information about the JDev mailing list