i had some time yesterday to make those edits and rebuild the .jars. thanks again vibhu - your edits worked nicely. i was able to start a BOSH connection with smack with no problems. now i’m having an odd issue attaching the connection with strophe - it always works in firefox, sometimes in safari, and never in chrome. weird! i guess i’m to find some strophe support for that one now.
have done a backport of the bosh client to smack 310, attaching as a zip file. The main part was to make BoshConnection extend XMPPConnection, handle IQ s in a better way. The only non BOSH class I needed was org.jivesoftware.smack.sasl.SASLMechanism from the latest branch. smack-bosh-backport.jar (8473 Bytes)
I was looking into your work in the bosh branch. Can you tell me which version of smack the BOSH version is built against? I noticed that when I built the library from source in shows ‘smack-bosh-3.2.0’. Does this mean that it is built against the 3.2.0 release of smack? Also, is there any idea if this branch will become part of the release so that bugs will be fixed against it?
This jar is having BOSHClient.java which calls “XmlPullParserFactory,java” at runtime which doesn’t exist in latest 3.2.1 smack release. So, I end up with following exception:
Exception in thread “BOSHClient[1762502123]: Receive thread” java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserFactory
Can someone please help me in understanding the build structure becuase structure of BOSH branch is different than TAG/Trunk.
Version : Openfire 3.7.1 , Smack- 3.2.1 and jbosh-0.6.0.jar
XMPP default port: 5222 and my connection manager port: 5333 and HttpBinding – 7070(Enabled in Admin console)
BOSHConfiguration config = new BOSHConfiguration(false, “myipaddress”,
5222, “/http-bind”, “myservicename”);
I made those changes in BOSHClient.java and after that also I am getting the same errors.
If I use the port number as 5222 / 5333 I am getting Timeout reaches Exception
And for 7070 port I am getting NullPointerException
Exception in thread “BOSHClient[18378667]: Receive thread” java.lang.NullPointerException
at com.kenai.jbosh.XLightWebResponse.awaitResponse(XLightWebResponse.java:187)
at com.kenai.jbosh.XLightWebResponse.getBody(XLightWebResponse.java:166)
at com.kenai.jbosh.BOSHClient.processExchange(BOSHClient.java:1031)
at com.kenai.jbosh.BOSHClient.processMessages(BOSHClient.java:976)
at com.kenai.jbosh.BOSHClient.access$000(BOSHClient.java:97)
at com.kenai.jbosh.BOSHClient$1.run(BOSHClient.java:215)
at java.lang.Thread.run(Unknown Source)
I am bit confusing with these port number. Actually which port number do I need to use here.
I am using these jars [ smack.jar,smackx-debug.jar,smackx-jingle.jar, smackx.jar, xlightweb-2.5.jar, xmlpull_1_1_3_4c.jar, xpp3-1.1.4c.jar, xSocket-2.6.6.jar and dom4j-1.6.1.jar]
Can someone please help me whatelse jars do need to include or post here the modified jars…
Exception in thread “BOSHClient[32389396]: Receive thread” java.lang.NullPointerException
at com.kenai.jbosh.XLightWebResponse.awaitResponse(XLightWebResponse.java:188)
at com.kenai.jbosh.XLightWebResponse.getBody(XLightWebResponse.java:166)
at com.kenai.jbosh.BOSHClient.processExchange(BOSHClient.java:1056)
at com.kenai.jbosh.BOSHClient.processMessages(BOSHClient.java:1000)
at com.kenai.jbosh.BOSHClient.access$0(BOSHClient.java:970)
at com.kenai.jbosh.BOSHClient$1.run(BOSHClient.java:211)
at java.lang.Thread.run(Unknown Source)
For anyone else attempting to use the smack-bosh branch above: it worked for me, but there are all sorts of NPE bugs you might encounter because it’s built against 3.2.0. You might try using the following libs instead:
Latest SMACK API 3.2.1 version doesn’t have support for BOSH. Thus, I have merged their code base
Did you ever get the BOSHConnection working with PubSub? I am trying it and I notice that in the debugger the connection continually stops and restarts when it sends out a request to get a node. Then eventually, it will work and it seems that the connection is fine from that point on. Didn’t know if you had any experience with this.
Thanks for the info. I am currently using smack 3.2.2 with a version of BOSHConnection that I found on github . I will try again with 3.2.1 and your version of the jar. One difference I see is that I am using Openfire for my server where you are using EJabberd. Thanks for the info. The issue I am seeing is weird - after my request for a a node, I am getting a “Client provided invalid session” error on the server. Regardless, I will give it a shot. Thanks again.
Anyone get PLAIN Sasl to work with this? I can’t seem to get this to work at all. I know the login stuff is correct, as I’ve tested it using XMPPConnection class, I just change this and the port, and using BOSH I get “No response from the server.:”. Watching the this in wireshark, it looks like it get’s the challenge and does nothing with it.