【小5聊】Linux服务器centos安装NodeJs简单实现WebSocket实时通讯,NodeJs服务器搭建(基础篇)

目录

【效果】

【前言】

【查看信息】

【NodeJs安装】

【启动服务】

【守护进程】

【服务端代码】

【客户端代码】

【卸载】


【效果】

【前言】

这里主要是借助了nodejs-websocket插件来实现,当然也是可以使用socket.io插件来实现

Linux的centos7服务器,可以选择FinalShell 、XShell等工具登录操作,以下操作通过XShell进行

【查看信息】

先查看自己centos7服务器上是否安装nodejs

node -v

npm -v

如果没安装就会提示查找不到文件目录以及命令没发现

【NodeJs安装】

  • 【yum】

什么是yum,大概了解下

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

关键词:从指定服务器地址下载软件并完成软件安装


命令:yum install -y nodejs npm

再次查看信息

  • 【npm】

什么是yum,大概了解下

npm,Node Package Manager,直译就是节点包管理器,用于安装nodejs-websocket

命令:npm install nodejs-websocket

出现如下警告提示,好像也是可以运行

【启动服务】

  • 防火墙开启3000端口

在启动服务器前,需要添加防火墙开放3000端口

防火墙开放端口命令:firewall-cmd --zone=public --add-port=3000/tcp --permanent

重新启动防火墙命令:firewall-cmd --reload

  • 在以下目录创建server.js文件

  • 直接定位到nodejs文件夹,然后启动

命令:node server.js

  • 或者具体路径启动

命令:node /data/nodejs/server.js

备注:进入服务后,可以通过Ctrl+C退出

【守护进程】

手动启动服务最大的缺点就是,退出XShell链接,自动就退出了,这个显然不是我们想要的,这个时候forever好兄弟就来了

  • 安装forever

命令:npm install forever -g

  • 启动

命令:forever start /data/nodejs/server.js

备注:server.js就是自己上传的js服务器文件,具体看自己的目录

  • 关闭

命令:forever stop /data/nodejs/server.js

【服务端代码】


var ws = require("nodejs-websocket");
console.log("WebSocket开始连接...");

var onlinecount = 0;
var server = ws.createServer(function (conn) {
    
    //监听文本
    conn.on("text", function (str) {
        console.log("收到的信息为:" + str)

        server.connections.forEach(function (conn) {
            conn.sendText(str);
        });
    })

    //监听当前链接是否关闭
    conn.on("close", function (code, reason) {

        onlinecount -= 1;
        online();

        console.log("关闭连接");
    });

    //监听当前连接是否发生错误
    conn.on("error", function (code, reason) {

        onlinecount -= 1;
        online();

        console.log("异常关闭")
    });


    onlinecount += 1;
    online();
}).listen(3000, '服务器非127的内网IP');

//在线人数
function online() {

    server.connections.forEach(function (conn) {
        conn.sendText("###online###" + onlinecount);
    });
}

console.log("WebSocket连接成功");

【客户端代码】

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>nodejs简单通讯</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <style>
    </style>
</head>
<body>
    <div id="info">正在连接...</div>
    <div>当前在线客户端数量:<span id="online"></span></div>
    <div>
        <input id="value" />
        <span id="send">发送</span>
    </div>
    <div id="message">

    </div>

    <script>
        var info = document.getElementById("info");
        if (window.WebSocket) {
            var ws = new WebSocket('ws://服务器外网IP:3000'); //http:可能会报错,所以改成ws

            ws.onopen = function (e) {
                info.innerHTML = "连接服务器成功";
            }
            ws.onclose = function (e) {
                info.innerHTML = "服务器关闭";
            }
            ws.onerror = function () {
                info.innerHTML = "连接出错";
            }

            //通讯
            ws.onmessage = function (e) {

                var data = e.data;

                if (data.indexOf("###online###") >= 0) {

                    $("#online").html(data.replace("###online###", ""));
                }
                else {

                    $("#message").append("<div>" + data + "</div>");
                }
            }

            //发送信息
            $("#send").click(function () {
                var value = $("#value").val();
                ws.send(value);
            });
        }
    </script>
</body>
</html>

【卸载】

1、删除:yum remove nodejs npm -y

2、查找文件夹

3、找到文件进行删除

rm -rf /root/...具体根据自己的目录来

猜你喜欢

转载自blog.csdn.net/lmy_520/article/details/106327523
今日推荐