打造你的 Laravel 即时应用(三)- 部署及管理方案
前面博客系列:
- 打造你的 Laravel 即时应用(一)- 项目初始化构建
- 打造你的 Laravel 即时应用(二)- 消息推送与监听
在前面的两篇中, 我们讲述完了如何构建 Laravel 即时应用, 这篇就来讲述部署和管理方案的一些要点.
(一、)生产环境中部署命令
laravel-echo-server 初始化完成后, 就会生成 laravel-echo-server.json 这样的配置文件, 我们需要把它提交到 git 仓库中, 方便我们进行部署.
// 启动
laravel-echo-server start
// 停止
laravel-echo-server stop
// 初始化
laravel-echo-server init
(二、)保持进程自启动及后台运行
在生产环境中, 我们需要保持 laravel-echo-server 一直处于启动状态, 不能让他突然掉线, 或者 kill 掉实现自启动.
这里我通过 supervisor 来管理 laravel-ehco-server 的进程
Supervisor 简介 Supervisord 是用 Python 实现的一款的进程管理工具,supervisord 要求管理的程序是非 daemon 程序,supervisord 会帮你把它转成 daemon 程序,因此如果用 supervisord 来管理进程,进程需要以非 daemon 的方式启动
Supervisor 的安装和使用, 大家可以自行谷歌或百度一下.
下面分享一下我使用的配置
[program:laravel-echo-server]
process_name=%(program_name)s_%(process_num)02d
directory= 项目路径
command=laravel-echo-server start
autostart=true
autorestart=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile= 日志路径
部署成功, 查看 laravel-echo-server 是否正常运行
ps aux | grep laravel-echo-server
结尾:
通过 laravel-echo-server 我们很轻松的完成了 WebSocket 的组件, 避免了很多重复造轮子的工作, 同样的组建场景还可以使用在 React、React Native 中, 本文中还有 PrivateChannel 及 Broadcasting Auth 没有一一详细叙述到位, 有兴趣的同学多翻翻文档吧, 就这些了,Happy Coding.