Jason Rowe

Be curious! Choose your own adventure.

Strophejs ejabberd IIS Setup

This is a simple guide for getting strophe.js, ejabberd, and IIS all working together on a local dev machine. This assumes you have IIS 7.5 installed and are familiar with the basics of IIS Manager

strophe ejabberd IIS

Step 1: Download and install ejabberd. The install is straight forward and the default configuration has everything you need. During the install it will ask you for a domain. I would recommend setting up a host alias “localhost.demo.com” because it looks nicer and easier to use but you could also just use localhost. After install check to make sure the http-bind endpoint is working http://localhost:5280/http-bind/. You should see a simple page that has “ejabberd mod_http_bind” at the top

Step 1.5: Setup a host name if needed. If you used localhost you can skip this step. You can do this in Windows 7 via the host file which should be located “C:\Windows\System32\drivers\etc\hosts”. Add a line at the bottom with your IP and new local DNS.

Step 2: Setup new IIS application and copy in strophe.js examples. Go into IIS manager and create a new application named “xmppExample”. Then download the latest strophe.js and copy the contents to your new site. You should be able to access the following now. http://localhost.demo.com/xmppExample/strophejs/examples/basic.html. You will have to change the first line in basic.js to setup your endpoint. It should look like this BOSH_SERVICE = ‘http://localhost.demo.com/http-bind’

Step 3: Setup proxy for ejabberd http-bind endpoint. To make things simple we need everything on the same domain. Right now, the bosch http-bind endpoint is this http://localhost:5280/http-bind/ and we need it to be this http://localhost.demo.com/http-bind. Download and install the Application Request Routing for IIS. Once installed follow these steps to enable proxy.

  1. Open IIS Manager
  2. Select a server node in the tree view on the left hand side and then click on the “Application Request Routing…” the full name shows up as “Application Request Routing Cache”
  3. Then on the far right side click on “Server Proxy Settings…
  4. check the box next to Enable proxy and apply settings (keep everything else default)

Finally, add a rewrite rule to the web.config file in your inetpub root dir. For example, mine is located “C:\inetpub\wwwroot\web.config”. Here is my rewrite section of the configuration file:


<rewrite>
    <rules>
          <rule name="ejabberd.BOSH" stopProcessing="true">
               	<match url="^http-bind" />
               	<action type="Rewrite" url="http://localhost.demo.com:5280/http-bind/" />
          </rule>
    </rules>
</rewrite>

Now you should be able to run the demo at http://localhost.demo.com/xmppExample/strophejs/examples/basic.html. You will need to login with [email protected] (if admin is the username you selected during install) and the password you selected during install.

I can also be found on Google+

and twitter


Posted

in

,

by

Comments

3 responses to “Strophejs ejabberd IIS Setup”

  1. James Avatar
    James

    Cool article, thanks! Would of been nice if you could have specified where exactly in the web.config file to put the rewrite rules (for iis noobs like me).

  2. Mayuri Avatar
    Mayuri

    Hi,

    I have same question as James.
    I did all the above changes but could not find the web.config to put the rewrite rule you mentioned.

  3. Jonathan Andrade Avatar
    Jonathan Andrade

    Hi,
    followed the steps but I have this error message in console

    Failed to load http://localhost.demo.com/http-bind: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost’ is therefore not allowed access.

Leave a Reply

Your email address will not be published. Required fields are marked *