A blog by Devendra Tewari
In this post, we use Node.js and some additional packages, on Ubuntu Linux, to replace Apache httpd used in the post Web chat using Strophe and Openfire.
First, we build and install Node.js from source. Next, we install npm package manager for Node.js. Using npm, we install two other packages - an HTTP middleware called connect, and a HTTP reverse proxy called http-proxy.
Install the libssl-dev
package of openssl
sudo apt install libssl-dev
Download source code of Node.js and extract it using
tar xzvf <filename>
Enter the source folder and execute the following commands
./configure --prefix=/usr
make
sudo make install
npm can be built from source, but we recommend using the following command. You will need to install curl and its dependencies.
sudo apt install curl
curl https://www.npmjs.com/install.sh | sudo sh
We use npm
to obtain and install packages to the global location at /usr/lib/node_modules
using the -g
switch. http-proxy
depends on a package called eyes
so we install that as well.
Execute the following commands
sudo npm -g install connect@latest
sudo npm -g install http-proxy@latest
sudo npm -g install eyes@latest
Create a file run.js
containing the following Javascript code. It initializes http-proxy
to proxy requests to the Openfire BOSH service, and the HTTP service provided by connect. It then initializes connect to serve static content.
var options = {
router: {
'localhost/http-bind/': 'localhost:7070',
'localhost/': 'localhost:8081'
}
};
httpProxy = require('http-proxy');
httpProxy.createServer(options).listen(80);
var connect = require('connect');
connect.createServer(
connect.favicon(),
connect.static('/home/login/work/')
).listen(8081);
Copy the folder of trophyim web chat client to /home/login/work
. We need to modify the TROPHYIM_BOSH_SERVICE
var in trophyim.js
.
var TROPHYIM_BOSH_SERVICE = 'http://localhost/http-bind/';
Now, run Node.js
export NODE_PATH=/usr/lib/node_modules/
node run.js
Node.js will not search a node_modules
folder for packages if it does not appear in the NODE_PATH
environment variable.
If you have done everything right, you should now be able to access http://localhost/trophyim.0.3/index.html
from the browser, and chat with any contact in your roster.