I apologize for posting yet another attach / openfire question, but I did read all of the other ones on the group, and I'll do my best to provide the necessary logs. I have confirmed that RID incrementing is not the issue!If I manually (using Firebug + Firefox 13.0.1) pause(); the connection, wait until the current outstanding poll returns (< 30 secs), and then refresh the page - then attach works. RID is correctly sequential, incoming chats arrived, beautiful.However, if I refresh the page (my window onunload handler pauses() the connection, but the browser necessarily kills the open http connection), the attach always fails with a "404 Invalid SID". The OpenFire logs are less than helpful:org.jivesoftware.openfire.http.HttpBindServlet - Client provided invalid session: 2906e09b. [4.30.25.205]I am *not* using Punjab (I have an Apache reverse proxy to talk to my OpenFire server). Is there any way to gracefully detach Strophe on page unload? Is there any way to configure OpenFire to not kill my SID when http connection is aborted? What are other people doing in this situation?Thanks! Logs follow: (Note that I'm using the aborted RID as the first request RID after refresh - I have tried using the sequential next RID instead, but it also gives a 404 error). Firebug shows "NetworkError: 404 Invalid SID. - https://tt-acd03.onstate.net/ChatProxyBOSH/http-bind/"Before Refresh:Strophe is connecting.SEND: <body rid='3570631089' xmlns='http://jabber.org/protocol/httpbind' to='onstate.net' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>RECV: <body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams' authid='eb543d59' sid='eb543d59' secure='true' requests='2' inactivity='30' polling='5' wait='60' hold='1' ack='3570631089' maxpause='300' ver='1.6'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism></mechanisms><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features></body>SEND: <body rid='3570631090' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>Y2V1c2VyQG9uc3RhdGUubmV0AGNldXNlcgBDZXVzZXIwIQ==</auth></body>RECV: <body xmlns='http://jabber.org/protocol/httpbind'><success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/></body>SEND: <body rid='3570631091' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59' to='onstate.net' xml:lang='en' xmpp:restart='true' xmlns:xmpp='urn:xmpp:xbosh'/>RECV: <body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><stream:features><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features></body>SEND: <body rid='3570631092' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'><iq type='set' id='_bind_auth_2' xmlns='jabber:client'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/></iq></body>RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' id='_bind_auth_2' to='onstate.net/eb543d59'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>ceuser@onstate.net/eb543d59</jid></bind></iq></body>SEND: <body rid='3570631093' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'><iq type='set' id='_session_auth_2' xmlns='jabber:client'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq></body>RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' id='_session_auth_2' to='ceu...@onstate.net/eb543d59'/></body>Strophe is connected. JID: ceu...@onstate.net/eb543d59 SID: eb543d59 RID: 3570631094SEND: <body rid='3570631094' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'><presence xmlns='jabber:client'/></body>RECV: <body xmlns='http://jabber.org/protocol/httpbind'><presence xmlns='jabber:client' from='ceu...@onstate.net/18d541d5' to='ceu...@onstate.net/eb543d59'/></body>SEND: <body rid='3570631095' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'/>RECV: <body xmlns='http://jabber.org/protocol/httpbind'><presence xmlns='jabber:client' from='ceu...@onstate.net/8059bba' to='ceu...@onstate.net/eb543d59'/><presence xmlns='jabber:client' from='ceu...@onstate.net/d0717c90' to='ceu...@onstate.net/eb543d59'/><presence xmlns='jabber:client' from='ceu...@onstate.net/2cd34fe0' to='ceu...@onstate.net/eb543d59'/></body>SEND: <body rid='3570631096' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'/>After refresh:Attempting Strophe connection with saved jid: ceu...@onstate.net/eb543d59 sid: eb543d59 rid: 3570631096Strophe is attaching...Strophe is attached.SEND: <body rid='3570631096' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59'/>RECV: <body xmlns='http://jabber.org/protocol/httpbind' type='terminate' condition='item-not-found'/>Strophe failed to connect.Strophe is disconnecting.LOG: Disconnect was called because: undefinedLOG: _sendTerminate was calledLOG: _throttledRequestHandler called with 1 requestsLOG: request id 2.0 postingLOG: request id 2.0 state changed to 1LOG: request id 2.0 state changed to 1SEND: <body rid='3570631097' xmlns='http://jabber.org/protocol/httpbind' sid='eb543d59' type='terminate'><presence xmlns='jabber:client' type='unavailable'/></body>LOG: request id 2.1 state changed to 2LOG: request id 2.1 state changed to 3LOG: request id 2.1 state changed to 3LOG: request id 2.1 state changed to 4LOG: request errored, status: 404, number of errors: 1LOG: _onDisconnectTimeout was calledLOG: _doDisconnect was calledStrophe is disconnected. Re-connecting.If I use the next sequential RID instead (outstanding poll at refresh time was 2914479752):Attempting Strophe connection with saved jid: ceu...@onstate.net/246f5dd7 sid: 246f5dd7 rid: 2914479753Strophe is attaching...Strophe is attached.
SEND: <body rid='2914479753' xmlns='http://jabber.org/protocol/httpbind' sid='246f5dd7'/>
LOG: request id 1.1 error 404 happenedLOG: request errored, status: 404, number of errors: 1Strophe is disconnecting.LOG: _doDisconnect was calledStrophe is disconnected. Re-connecting.
We chose Openfire for the external database integration. Can't recall whether we looked at Prosody; ejabberd was either too difficult to get external database or we had to have to duplicate list of users (can't recall which).
Charlie
--
Ꮚ Charlie Garrison ♊ <garr...@zeta.org.au>
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
〠 http://www.ietf.org/rfc/rfc1855.txt
--
You received this message because you are subscribed to the Google Groups "Strophe" group.
To post to this group, send email to str...@googlegroups.com.
To unsubscribe from this group, send email to strophe+unsubscribe@googlegroups.com.
Thanks for that link, but:
Forbidden
You don't have permission to access /doc/display/MESSENGER/Using+ejabberd+with+MySQL+native+driver on this server.
We *can* live with duplicate users, but decided not since we had alternatives. I've done projects with 'duplicated' users before, and it wasn't *if* they got out of sync; it was a matter of *when*. Really wanted to avoid that this time.
PS: Your "Duplicate users" point is valid but we could live with it
Charlie
--
Ꮚ Charlie Garrison ♊ <garr...@zeta.org.au>
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
〠 http://www.ietf.org/rfc/rfc1855.txt
--
You received this message because you are subscribed to the Google Groups "Strophe" group.
To post to this group, send email to str...@googlegroups.com.
To unsubscribe from this group, send email to strophe+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/strophe?hl=en.
I don't think so but you can provide an external auth script (which won't scale) or you can write a module in erlang which authenticates the users with your existing users table.