CentOS下搭建websocket(NodeJS+ws)小记

1,安装nodejs,下载地址https://nodejs.org/download/,根据系统版本选择对应的文件下载,上传到服务器/usr/local,解压。然后全局设置
$ ln -s /usr/local/解压目录/bin/node /usr/local/bin/node
$ ln -s /usr/local/解压目录/bin/npm /usr/local/bin/npm

2,测试nodejs,新建js文件,保存于/home/test.js,内容如下:
console.log('Hello World!');
使用nodejs执行:
$ node /home/test.js
屏幕打印出Hello World!即表示 nodejs安装成功。
3,安装ws,先cd到/usr/local,使用命令:
$ npm install ws
但是由于GFW封锁,有些资源下载不到,把源改为国内的淘宝 NPM 镜像(看起来像淘宝家的,其实不是,但绝对好用),使用命令:
$ npm config set registry https://registry.npm.taobao.org
然后再执行:
$ npm install ws -g
即可安装成功,这时会在/usr/local/lib下建立一个目录node_modules,进入即可看到ws文件夹。
4,配置NODE_PATH,将其指向到/usr/local/lib/node_moudles目录
$ export NODE_PATH=/usr/local/lib/node_modules

$ vi /etc/profile
文件末尾添加
export NODE_PATH=/usr/local/lib/node_modules
保存执行
$ source /etc/profile
此环节可解决“Cannot find module ‘ws’”的服务端报错。
5,经过上述几步操作,websocket的服务端就搭建成功了。
下面是websocket的简单例子:
服务端
server.js,保存于/home/server.js

var WebSocketServer = require('ws').Server
, wss = new WebSocketServer({port: 8080});
wss.on('connection', function(ws) {
ws.on('message', function(message) {
console.log('received: %s', message);
});
ws.send('something');
});

运行:
$ node /home/server.js

客户端
client.htm

< !DOCTYPE html>

WebSocket



client.js
var ws = new WebSocket("ws://你的服务器地址:8080/");
ws.onopen = function() {
alert("Opened");
ws.send("I'm client");
};
ws.onmessage = function (evt) {
alert(evt.data);
};
ws.onclose = function() {
alert("Closed");
};
ws.onerror = function(err) {
alert("Error: " + err);
};

浏览器中运行client.html,即可得到结果。

Leave a Comment

Your email address will not be published.

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据