乐趣区

打造你的Laravel即时应用三部署及管理方案

打造你的 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.

退出移动版