3

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

image

结尾:

通过laravel-echo-server我们很轻松的完成了WebSocket的组件,避免了很多重复造轮子的工作,同样的组建场景还可以使用在React、React Native中,本文中还有PrivateChannel及Broadcasting Auth没有一一详细叙述到位,有兴趣的同学多翻翻文档吧,就这些了,Happy Coding.

image


Sinming
307 声望21 粉丝

Bug总工程师