# How to echobot with XMPP, BOSH, and Strophe

1. Setup ejabberd(http://www.ejabberd.im/) server and setup account admin@localhost.local
NOTE: localhost should be enough. If you setup something else, make sure you add it at /etc/hosts like this
#/etc/hosts
127.0.0.1       localhost.local

NOTE: Also download Psi(http://psi-im.org/), and make sure you can connect to your ejabberd server.

2. Download strophe(http://code.stanziq.com/strophe/) and place it (eg: /Users/makoto/work/sample/strophejs-1.0)

3. Setup the nginx and proxy following http://anders.conbere.org/blog/2009/09/29/get_xmpp_-_bosh_working_with_ejabberd_firefox_and_strophe/

#nginx.conf
server {
    listen       80;
    server_name  localhost;

    # This regexp did not work for me.
    # location ~ ^/http-bind/ {       
    location /http-bind {       
        proxy_pass http://localhost:5280;
    }

    location / {
        # This is where you place your strophejs sample.
        root /Users/makoto/work/sample/strophejs-1.0;
    }
}

# the above will serve 2 uri
http://localhost.local/examples/echobot.html
http://localhost.local/http-bind

4. Modify echobot.js line 1

var BOSH_SERVICE = 'http://localhost.local/http-bind';

5. Open http://localhost.local/examples/echobot.html and type jid(admin@localhost.local) and password(whatever you setup at #1)
# It will show message like this.
Strophe is connecting.
Strophe is connected.
ECHOBOT: Send a message to admin@localhost.local/4199388567126350847984920 to talk to me.

NOTE: If you have Psi opened, it will pop up notification that now you are connected.

6. Send a message(Chat)
From your Psi, right click , select "Open Chat To" , then pick the resource (eg: 4199388567126350847984920)
When you send the message, it will echo what you sent to the browser like this

http://ow.ly/i/iEb