Anyone using Smack with the BOSH connection?

I appreciate this is a cheeky question - but having seen the following comments - I wanted to see if someone has it working.

The bosh and especially the jingle code is old and unmaintained. It may not work in all cases. from https://community.igniterealtime.org/docs/DOC-2703

“BOSH code is beta.” https://community.igniterealtime.org/message/237157#237157

Neither look good - but I wondered if an earlier versions works?

I have OpenFire 3.7.1 running and when using the Smack 4.0.2 library with the BOSH connection it intermittenly works but after a couple of messages I get delays and exceptions thrown when pulling back the roster (am trying to work out how to get the bosh and jbosh libraries checked out and working locally so I can debug it).

Any comments or thoughts would be most welcome,

Matt

I’m trying to work out how to get the bosh and jbosh libraries checked out and working locally so I can debug it.

That’s pretty easy with gradle and eclipse as it’s done automatically by “gradle eclipse”. Have a look at the smack-examples project GitHub - Flowdalic/smack-examples: Example code on how to use Smack and some simple test cases

You can just start debuging the smack-core, smack-bosh and jbosh code by

git clone GitHub - Flowdalic/smack-examples: Example code on how to use Smack and some simple test cases

cd smack-examples

gradle build eclipse

<open eclipse, choose “import existing projects”, debug the code and set breakpionts in the libraries>

I’m looking for someone skilled and dedicated, who steps up and maintains smack-bosh and jbosh in coordination with me. But in the last 4 years, nobody emerged. I though especially the idea to get smack-bosh working on Android (again) may motiviate people.

Hey Flow,

How about the idea of moving this to use websockets? Has this been discussed?

The server side component is there @ openfire-websockets - WebSockets Connection Manager and Web Client for Openfire - Google Project Hosting

I have a POC working with the tyrus client api.

Interested to know what you think

Matt

smack-websocket would be a great addition, as long as it’s based on draft-ietf-xmpp-websocket-10 (I assume @Dele Olajide’s openfire-websockets does so).

Tyrus seems to be a good choice. Important for smack-websocket would be Android (API 8) support, which means that every API it depends on (e.g. Tyrus) must also support running on Android API 8. There are a few hints that Tyrus seems to be able to run on Android, but there is no min SDK level mentioned:

[TYRUS-256] Support Client API on Andriod - Java.net JIRA

https://blogs.oracle.com/PavelBucek/entry/websocket_client_on_android_tyrus

POC code is great as first step, but in order to get smack-websocket merged I expect good quality code preferable with some unit tests. This may take a few review rounds and coordination with me. But if you are willing and motivated to drive this project I would support you wherever I can. I invite you to join #smack (Freenode) to talk about the next steps (and of course to idle around ).

Openfire-websockets does not follow that spec. It was done long before the spec was written. Thats why I have not moved the code to igniterealtime

Would be very very nice if we could adjust that to the spec and adopt that.

agreed It really should be done as part of openfire core http namespace code and not a plugin in order to fallback gracefully into BOSH when websockets fails