樱花聊天室(Node.js 网页项目)
Github:https://github.com/HaruhiYunona/Sakura_Chat_Room
Github下载地址:点击下载

使用方法

该教程内容所有指令都为Linux CentOS 7.x环境下指令,其他平台请您自行查询(⊙x⊙;)

1.下载node.js并下载Sakura_Chat_Room

node.js安装方法见菜鸟教程

https://www.runoob.com/nodejs/nodejs-install-setup.html

要注意机子是否安装了git,wgettar,没装的话自己装一下
然后

git clone https://github.com/HaruhiYunona/Sakura_Chat_Room

2.依赖库

express

fs

mysql

socket.io

如果您发现报错缺少或者未找到以上任何一项的话,还请您

npm uninstall 以上缺少项目 

npm install  以上缺少项目

这些依赖如果安装完成,会出现在工程根目录下package.jsonnode_modules

3.配置端口

firewall-cmd --zone=public --add-port=5555/tcp --permanent

如果您想用别的端口也是完全ok的,将5555换成您想要的端口即可,但是不可以和别的已经被占用的端口相同。websocket需要独占一个端口作为服务器。如果您有面板,可以直接去面板里设置。

4.配置文件

如果您已经解压好/git好Sakura_Chat_Room,就可以修改配置文件了

vi ./config.js

一般而言仅仅在我的项目基础上改动只需要更改这些配置即可

config['name'] = "Sakura聊天室";  //换成您想要的名字
config['hosting'] = "localhost";  //换成您自己服务器的ip
config['port'] = 5555;  //换成您刚刚开放的端口
config['port'] = "1234567890123456";  //需要刚好16个字符,可以用16位md5生成器来生成16个随机字符
config['logWrite'] = true;  //您看情况配置,true会将log写入到./log.txt,false则不输出log,仅显示于命令行
config['logTime'] = "timeStample";  //设置timeStample,log会输出十位数的时间戳。而dateTime则会输出日期格式的时间

数据库信息您自己填写。(请正确配置数据库信息,否则不能工作)

:wq

即可保存配置文件。

5.导入数据表和运行调试

该项目实例中我为您简单配置了一个Mysql数据表,它位于根目录,名称为user.sql,您可以通过面板或者以下命令导入数据库

mysql -u 数据库用户名 -p
Enter password:

输入数据库密码后命令行 会变成 mysql> 格式

mysql>use 数据库名
mysql>source ./user.sql 

数据表导入以后,执行

node index

运行程序,当shell输出:

[System Info]APP running! Listen to: IP:PORT --TimeStample

这类格式说明您的程序已正常运行。

接下来您访问您的服务器地址(不可以关闭shell命令行)

http://IP:端口

例如:http://110.123.456.789:5555

(憋吐槽这IP,我要写个真IP每个都在255以内回头真给哪个幸运儿的机子弄炸了怎么搞)

为以下界面,即安装成功

sample1.png

是不是可喜可贺?

问题来了,当您关闭shell命令行对话的时候,这个聊天室就会超时未响应

服务器端会话结束时会关闭掉会话中所有任务,我们不可能一直开着命令行,这时候就需要一个托管会话的工具:screen

如果您是第一次使用这个工具,请记得先安装,如下

yum install screen

安装完毕以后(之后不需再安装),使用

screen

指令即可创建一个托管窗口,该窗口可以在您关闭命令行后仍然执行会话。画面闪烁以后可以直接输入Sakura_Chat_Room的运行指令

node index

当程序提示正在运行以后,您不论怎么关闭shell命令行,都可以正常访问聊天室了。

6.常见问题解决

(1)端口占用

如果运行程序提示您相应端口已经被占用,请您使用指令

netstat -lnp | grep 端口号

查询出相应端口被占用进程的pid,然后

kill -9 进程pid

再运行程序即可

(2)缺少依赖
npm uninstall 缺少项目 
npm install  缺少项目
(3)node.js未找到

重新安装一遍,严格执行,结束后

node -v

检查版本号,如果成功输出就代表安装完成。

2021.10.3