CentOS7源码安装node.js和webSocket

本文档详细介绍了如何在CentOS7系统中通过源码安装node.js和webSocket,包括安装所需的依赖、解决编译错误、安装npm、配置服务器端和客户端的js文件,以及部署后的测试和维护,如使用supervisor和forever工具进行进程管理和日志监控。
摘要由CSDN通过智能技术生成

CentOS7源码安装node.js和webSocket

学习参考:http://ourjs.com/detail/529ca5950cb6498814000005

 

如果iptables是开启的,要先加入80端口和socket监听端口(可以自己设置)

官网:https://nodejs.org

下载页面:https://nodejs.org/download/release/

中文手册:http://nodeapi.ucdok.com/#/api/

# yum -y installgcc gcc-c++ openssl-devel  libssl-dev (如果是安装到32位系统需要再安装:yum install glibc.i686  zlib.i686

我在编译安装node时出现下面错误,解决办法:

# yum whatprovides libstdc++.so.6          //找到对于依赖的包,然后安装

# cd/data/software && wget -c https://nodejs.org/download/release/latest-v9.x/node-v9.0.0-linux-x86.tar.gz&& tar -zxvf node-v9.0.0-linux-x86.tar.gz  && cd  node-v9.0.0-linux-x86/bin  && ./node

 

出现上图说明nodejs安装成功了

# cp /data/software/node-v9.0.0-linux-x86/bin/*  /usr/sbin/ && node -v

# cd/data/software/node-v9.0.0-linux-x86/lib/node_modules/npm &&./configure  && make &&make install

修改npm的命令文件中的basedir路径,否则执行npm命令时老是报错

# cd /usr/lib/node_modules/npm/bin&&  vi npm

basedir="/usr/lib"

# cp/usr/lib/node_modules/npm/bin/npm /usr/sbin/npm  && npm -v

上图说明npm安装成功

使用npm命令安装express和socket.io  如果只是临时安装 Express,不想将它添加到依赖列表中,只需略去 --save 参数即可,安装 Node 模块时,如果指定了 --save 参数,那么此模块将被添加到 package.json 文件中 dependencies 依赖列表中。 然后通过 npm install 命令即可自动安装依赖列表中所列出的所有模块。

如果安装上面内容出错时,则给npm初始化,生成一个package.json文件:

# mkdir -p /data/software/node_modules  && cd /data/software/node_modules&& npm init

下面红色标记的要手动输入:

最后生成下面红色标记文件:

# cd /usr/lib/node_modules&& npm install --save express &&  npm install --savesocket.io  && ls

如上图红色标记,说明安装成功

建立网站根目录:

# mkdir /dataweb/www&& cd /dataweb/www && mkdir nodejs   //作为nodejs存放服务器端的js目录,要和网页根目录分开,而且不能通过url地址访问的到

把express 和 socket.io 拷贝过来,因为server.js要引用:

# cp -r  /data/software/node_modules/socket.io/  nodejs/

# cp -r  /data/software/node_modules/express/  nodejs/

# cd nodejs

# viserver.js   //作为webSocket服务器端

var app =require('./express')(); 

var http =require('http').Server(app);

var io = require('./socket.io')(http);

 

app.get('/',function(req, res){

    res.send('<h1>Welcome RealtimeServer</h1>');

});

//在线用户

var onlineUsers ={};

//当前在线人数

var onlineCount =0;

 

io.on('connection',function(socket){

    console.log('a user connected');

 

    //监听新用户加入

    socket.on('login', function(obj){

        //将新加入用户的唯一标识当作socket的名称,后面退出的时候会用到

        socket.name = obj.userid;

 

        //检查在线列表,如果不在里面就加入

       if(!onlineUsers.hasOwnProperty(obj.userid)) {

            onlineUsers[obj.userid] = obj.username;

            //在线人数+1

            onlineCount++;

        }

 

        //向所有客户端广播用户加入

        io.emit('login',{onlineUsers:onlineUsers, onlineCount:onlineCount, user:obj});

        console.log(obj.username+'加入了聊天室');

    });

 

    //监听用户退出

    socket.on('disconnect', function(){

        //将退出的用户从在线列表中删除

       if(onlineUsers.hasOwnProperty(socket.name)) {

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值