I'm going to add chat functionality to my app. After long searches I came to the conclusion that the best solution would be ejabberd/openfire + smack 4.1 for android, but I have some things that I can't wrap my ahead around. I don't know if I'm supposed to post a question like this here. Just comment if not and I'll delete it, but I don't know of any other place that I can ask. Now I have a facebook login and some fields that post data to a server and that data is uploaded into mysql tables. I found multiple tutorials on how to make the openfire connection, but once I achieve that am I supposed to forget about my old implementation ? Is openfire just for instant messaging, or does it behave like a server in which I can add tables, query them, add data and etc. ?If so how? I mean in my current configuration I have php which handles all of that, but I couldn't find anything in openfire that would let me do such a thing. When I configured openfire I saw that a lot of tables are created(ofuser, etc.), and I don't know what any of those are for, but I assume that I'm not supposed to mess with them. Am I going to implement the auto-registration within the facebook login(user= fb id and password = token)? Am I going to use openfire just to handle sending the messages, but store them on my current server in a table? It sounds that the phone would have to deal with too much- send the message to my server(to store it) and then to the openfire server? I would also like to make an website for this app. Should I make it in such a way that when the message is submitted into the php form(to store it) somehow it's going to send it to the openfire to handle the downstream? How should I implement this? Any help is greatly appreciated! Thank you.