Recent Posts
一些Linux环境下docker指令
Mysql8 创建文件夹/mydata/mysql8/… 后映射: docker run -p 3306:3306 --name mysql --restart unless-stopped \ -v /mydata/mysql8:/etc/mysql \ -v /mydata/mysql8/logs:/logs \ -v /mydata/mysql8/data:/var/lib/mysql \ -v /etc/localtime:/etc/localtime \ -e MYSQL_ROOT_PASSWORD=password -d mysql:8 Nginx 创建文件夹/mydata/nginx/… 后映射 创建 ssl 文件夹并将证书文件复制到容器内
docker run \ -p 80:80 \ -p 443:443 \ -p 5050:5050 \ --name nginx \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/ssl/server.pem:/etc/nginx/ssl/server.pem \ -v /mydata/nginx/ssl/server.key:/etc/nginx/ssl/server.key \ -v /mydata/nginx/ssl/server2.pem:/etc/nginx/ssl/server2.pem \ -v /mydata/nginx/ssl/server2.key:/etc/nginx/ssl/server2.key \ -v /mydata/nginx/log:/var/log/nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/admin_html:/usr/share/nginx/admin_html \ -d nginx:latest 后端工程 位置创建在/mydata/App 记得把跳过依赖关掉
read more
Pm2指令大全
基础命令 pm2 start app.js # 启动应用 pm2 start app.js –name myapp # 命名进程 pm2 list # 显示所有进程 pm2 stop all # 停止所有应用 pm2 stop 0 # 停止指定 ID 的应用
监控日志 pm2 logs # 显示所有日志 pm2 logs 0 –lines 1000 # 显示指定应用最近 1000 行日志 pm2 monit # 监控所有进程
集群模式 pm2 start app.js -i max # 使用最大集群模式(根据 CPU 核心数) pm2 scale 0 4 # 将 ID 为 0 的应用扩展到 4 个实例
read more
Ts机器人相关指令
1. 准备工作 # 创建数据目录 mkdir -p ~/ts3ab_data chown -R 9999:9999 ~/ts3ab_data 2. 首次运行(生成配置文件) docker run --rm \ -v ~/ts3ab_data:/app/data \ -it ancieque/ts3audiobot:0.12.0 按提示完成初始配置后,按 Ctrl+C 退出
3. 修改配置文件 # 编辑主配置文件 vim ~/ts3ab_data/ts3audiobot.toml # 编辑权限文件 vim ~/ts3ab_data/rights.toml 4. 正式运行 docker run -d \ --name ts3audiobot \ -v ~/ts3ab_data:/app/data \ -p 58913:58913 \ ancieque/ts3audiobot:0.12.0 5. 常用管理命令 # 查看日志 sudo docker logs -f ts3bot # 停止服务 sudo docker stop ts3bot # 启动服务 sudo docker start ts3bot # 进入容器 sudo docker exec -it ts3bot sh 6.
read more
基于Socket.io开发信令服务器
什么是 socket.io 一个 js 库,用来建立长链接,默认使用 WebSocket,次选 Http 长轮询
什么是信令服务器 一般指 WebRtc 的一个概念,由于 WebRtc 通过 P2P 进行连接,所以需要一台服务器用来交换双方的网络地址信息,在交换信息后用户的数据流就使用 P2P 传输,所以不必担心消耗过多公网流量
能做什么 实现双向、实时、基于事件的通信。这里我们利用这个特性制作信令服务器
Socket.io 官方文档 Node.js 使用包管理器安装socket.io,这个是服务端库、socket.io-client是客户端库,本文针对服务端
前置:Web 应用框架(例如:express)
可选:
日志框架(例如:winston) 服务管理(例如:pm2) 数据库(例如:better-sqlite3(需要编译)) 通信格式一般以数组为单位:[“事件名”,“数据内容”]
// 通过emit发送消息,默认向全部连接实例发送 socket.emit("message", "Hello from Socket.IO!"); // 指定方向,默认每一个连接都加入了一个房间,向用户默认的那个房间发消息就可以实现私聊等功能 io.to(ID).emit("point", data); // 监听服务 socket.on("joinroom", (data) => { // 可在此处编写业务逻辑 }); 配置例子 export default { PORT: 1145, // 服务器配置 SOCKET_SETTINGS: { transports: ["websocket"], allowEIO3: true, pingTimeout: 50000, pingInterval: 15000, maxHttpBufferSize: 1e8, cors: { origin: "*", methods: ["GET", "POST"], }, }, }; 创建服务器的函数 /** * 创建 Socket.
read more