In my Adobe Flex web based chat client project I'm using XIFF API and JHB servlet v 1.1.1 (for http-binding support) and I want to connect to Jabber.org server. XIFF suports SASL PLAIN, ANONYMOUS and EXTERNAL and since I want to do non-anonymous login so I can use only SASL PLAIN and EXTERNAL. but Jabber.org does not support latter so only one option remains - SASL PLAIN.
My client was unable to login using SASL PLAIN and I was getting 401: Authentication Error from server. I changed the format of username and password in packet to username@jabber.org/0username/0password and I started getting authentication success from Jabber.org server. But After XMPP Restart when the client sends resource binding packet I do not receive any response from Jabber.org apart from packet and after some time session times out.
Delving more in the logs and BOSH implementation details I can see that I'm not getting any response from Jabber.org server for XMPP restart packet.
After this i Send resource binding packet but since the stream hasn't restarted I dont get that either.
Now what is the reason behind eJabberD 2.x version (Jabber.org) not responding to it? During my search and logs from successfully connecting client I see that client is not sending the OPEN stream tag prior to XMPP restart which is
Is this tag required or is there some other problem with server? Actually due to technical issue with Flex I'm unable to create an OPEN stream tag. It always creates a CLOSED one so i cannot myself make change to the code and see the difference.
The issue was with JHB (JabberHTTPBind servlet v1.1.1). As the XMPP restart packet does not have child nodes so it was not forwarding it to the server. Though when you see the debug logs it prints XMPP RESTART so you think that the packet was sent. Only when we looked closely into the network traffic we noticed that. So it will be solved at JHB's end.
You are developing a XMPP client, right? Are you testing it with a public, free, production XMPP server? Do you consider this a good idea?
If your client is untested and buggy, is it a good idea to test it in a server where many other people are chatting?
Why don't you install ejabberd in your machine, and test your client against it? You can also install other free XMPP servers, and test your client against them, too.
Delving more in the logs and
Delving more in the logs and BOSH implementation details I can see that I'm not getting any response from Jabber.org server for XMPP restart packet.
After this i Send resource binding packet but since the stream hasn't restarted I dont get that either.
Now what is the reason behind eJabberD 2.x version (Jabber.org) not responding to it? During my search and logs from successfully connecting client I see that client is not sending the OPEN stream tag prior to XMPP restart which is
<stream:stream to="jabber.org" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0" >
after successful Auth.
Is this tag required or is there some other problem with server? Actually due to technical issue with Flex I'm unable to create an OPEN stream tag. It always creates a CLOSED one so i cannot myself make change to the code and see the difference.
Problem solved
The issue was with JHB (JabberHTTPBind servlet v1.1.1). As the XMPP restart packet does not have child nodes so it was not forwarding it to the server. Though when you see the debug logs it prints XMPP RESTART so you think that the packet was sent. Only when we looked closely into the network traffic we noticed that. So it will be solved at JHB's end.
You are developing a XMPP client, right?
You are developing a XMPP client, right? Are you testing it with a public, free, production XMPP server? Do you consider this a good idea?
If your client is untested and buggy, is it a good idea to test it in a server where many other people are chatting?
Why don't you install ejabberd in your machine, and test your client against it? You can also install other free XMPP servers, and test your client against them, too.