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>
<html>
    <body>
        <h1>WebSocket</h1>
        <script src="client.js"></script>
    </body>
</html>

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.

*