I'm using Openfire to make an http-binding with Converse.js. I want to prebind it in order to make single session on my webapp. I used the java librarie smack-bosh.
I succeed to login (and stay logged) with converse directly to openfire (chat, add contact, join room, ...) I also succeed login smack to openfire and stay logged. I succesffuly retrieve Jid, Sid, Rid to prebind. I prebind and login with converse.js but i got disconnect because of overactivity. I set xmpp.httpbind.client.requests.ignoreOveractivity to true in OpenFire as mentioned here. Over activity is know fixed.
I stay logged if i do nothing. But as soon I try to send message or add contact or change status, OpenFire disconnect the session. In OpenFire logs, if I well understand, it's because the session is apparently "unavailable" but in reality converse is still connected because try to make a request and receive a "Invalid SID" Error.
OpenFire logs :
2014.08.22 17:26:05 org.jivesoftware.openfire.http.HttpSession - consumeResponse: org.jivesoftware.openfire.http.HttpSession@e8ecbb status: 3 address: test@127.0.0.1/fdf7cf75 id: fdf7cf75 presence:
<presence id="3bP9K-37" from="test@127.0.0.1/fdf7cf75" to="test@127.0.0.1/fdf7cf75"/> rid: 891999928666552
2014.08.22 17:26:05 org.jivesoftware.openfire.http.HttpSession - consumeResponse: org.jivesoftware.openfire.http.HttpSession@e8ecbb status: 3 address: test@127.0.0.1/fdf7cf75 id: fdf7cf75 presence:
<presence from="test@127.0.0.1/fdf7cf75">
<show>dnd</show>
</presence> rid: 891999928666553
2014.08.22 17:26:05 org.jivesoftware.openfire.http.HttpSession - consumeResponse: org.jivesoftware.openfire.http.HttpSession@e8ecbb status: 3 address: test@127.0.0.1/fdf7cf75 id: fdf7cf75 presence:
<presence from="test@127.0.0.1/fdf7cf75">
<show>dnd</show>
</presence> rid: 891999928666554
2014.08.22 17:26:09 org.jivesoftware.openfire.http.HttpSession - consumeResponse: org.jivesoftware.openfire.http.HttpSession@e8ecbb status: -1 address: test@127.0.0.1/fdf7cf75 id: fdf7cf75 presence:
<presence type="unavailable" from="test@127.0.0.1/fdf7cf75"/> rid: 891999928666554
converse logs :
0 request id 3.0 posting converse.min.js:223
0 request id 3.0 state changed to 1 converse.min.js:223
<body rid="891999928666554" xmlns="http://jabber.org/protocol/httpbind" sid="fdf7cf75"> </body> converse.min.js:223
0 request id 3.1 state changed to 2 converse.min.js:223
0 request id 3.1 state changed to 3 converse.min.js:223
0 request id 3.1 state changed to 4 converse.min.js:223
0 removing request converse.min.js:223
0 _throttledRequestHandler called with 0 requests converse.min.js:223
0 request id 3 should now be removed converse.min.js:223
0 request id 3.1 got 200 converse.min.js:223
1 _dataRecv called converse.min.js:223
<body xmlns="http://jabber.org/protocol/httpbind"></body> converse.min.js:223
1 no requests during idle cycle, sending blank request converse.min.js:223
0 request id 4.0 posting converse.min.js:223
0 request id 4.0 state changed to 1 converse.min.js:223
<body rid="891999928666555" xmlns="http://jabber.org/protocol/httpbind" sid="fdf7cf75"></body> converse.min.js:223
POST http://127.0.0.1:7070/http-bind/ 404 (Invalid SID.) converse.min.js:223
l converse.min.js:223
Strophe.Bosh._processRequest converse.min.js:223
Strophe.Bosh._throttledRequestHandler converse.min.js:223
Strophe.Bosh._sendTerminate converse.min.js:223
Strophe.Bosh._disconnect converse.min.js:223
t.Connection.disconnect converse.min.js:223
t.Connection._dataRecv converse.min.js:223
Strophe.Bosh._onRequestStateChange
0 request id 4.1 state changed to 2 converse.min.js:223
0 request id 4.1 state changed to 3 converse.min.js:223
0 request id 4.1 state changed to 4 converse.min.js:223
0 removing request converse.min.js:223
0 _throttledRequestHandler called with 0 requests converse.min.js:223
0 request id 4 should now be removed converse.min.js:223
ERROR: request id 4.1 error 404 happened converse.min.js:223
2 request errored, status: 404, number of errors: 1 converse.min.js:223
1 _doDisconnect was called
Stanza logs :
<jive xmlns="http://www.jivesoftware.org">
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="connected" timestamp="août 22, 2014 06:05:26:873 PM"><iq xmlns="" id="3bP9K-42" type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource/></bind></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:876 PM"><iq xmlns="" type="result" id="3bP9K-42" to="127.0.0.1/ec1f570e"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>test@127.0.0.1/ec1f570e</jid></bind></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:881 PM"><iq xmlns="" id="3bP9K-43" type="set" from="test@127.0.0.1/ec1f570e"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:881 PM"><iq xmlns="" type="result" id="3bP9K-43" to="test@127.0.0.1/ec1f570e"/></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:892 PM"><iq xmlns="" id="3bP9K-44" type="get" from="test@127.0.0.1/ec1f570e"><query xmlns="jabber:iq:roster"/></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:913 PM"><iq xmlns="" type="result" id="3bP9K-44" to="test@127.0.0.1/ec1f570e"><query xmlns="jabber:iq:roster"/></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:914 PM"><presence xmlns="" id="3bP9K-45" from="test@127.0.0.1/ec1f570e"/></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:26:915 PM"><presence xmlns="" id="3bP9K-45" from="test@127.0.0.1/ec1f570e" to="test@127.0.0.1/ec1f570e"/></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:27:078 PM"><iq xmlns="" type="get" id="1:roster" from="test@127.0.0.1/ec1f570e"><query xmlns="jabber:iq:roster"/></iq></packet>
<packet xmlns="http://www.jivesoftware.org" streamID="ec1f570e" status="auth" timestamp="août 22, 2014 06:05:27:078 PM"><iq xmlns="" type="result" id="1:roster" to="test@127.0.0.1/ec1f570e"><query xmlns="jabber:iq:roster"/></iq></packet>
Thanks for help.