title: architecture to Facebook-chat from a webpage, (XMPP? Strophe? Punjab?)
body: <p>I would like to implement <strong>FB-chat</strong> inside a <strong>webpage</strong>. I looked around in Facebook API, i found out that chat is allowed only using XMPP. First I tried to connect to FB-chat using Pidgin and it worked fine. My conclusion was that FB-chat server is acting as the XMPP server. <strong>Is this true?</strong></p>
  
  <p>I read about XMPP, it seems that an open TCP connection should be established between the client and the server to exchange the XML stanzas which is not possible from a website (over JavaScript and without plugins) since only http requests/responses can be exchanges, no TCP connection there. This means that there should be some kind of a proxy in between, and as for authentication, FB API suggests to use the X-FACEBOOK-PLATFORM SASL (not the DIGEST MD5, since there is a proxy). <strong>I didn't find a clear tutorial or steps how to do so, help here is appreciated.</strong></p>
  
  <p>A bit more research about XMPP client from the web or browser, I saw that I am supposed to use a library called <strong>Strophe</strong> (based on <strong>BOSH</strong> protocol) and in other answers some kind of connection manager called <strong>Punjab</strong>. I read about this BOSH protocol, it seems to be the solution but in some places I found out that it is not allowed in FB (I am not sure how correct is this info though). I tried to setup these but i was totally confused how to begin and what I am really supposed to do.</p>
  
  <p>For the strophe, I didn't find a real tutorial how to implement it, and in what i found, they suggest to first setup a jabber server like ejabberd (I didnt get the need for that).</p>
  
  <p><strong>My question is:</strong></p>
  
  <p>Can somebody suggest an architecture that I should implement to achieve my goal?</p>
  
  <p>So will there be: <strong>webpage ->(HTTP) -> Strophe -> (TCP) -> FB-chat</strong> OR will it have an XMPP server in between and why?</p>
  
  <p>I would appreciate any answer to any of my questions. Please suggest some links to how to implement all these stuff. I am totally new to all this which made me lost for more than a week now.</p>
  
  <p>If somebody already did this, please help.
  Thanks a lot.</p>
  
  <p>Sabah</p>