即时通信 socket workerman

本文介绍了如何安装和使用Workerman与think-worker扩展在PHP中搭建即时通信服务。通过Composer安装这两个组件后,可以启动HTTP服务并以守护进程模式运行。同时,文章详细阐述了如何配置和管理Workerman服务,包括启动、停止、重载和重启操作,以及配置文件的设置。此外,还提到了在Windows和Linux环境下的一些注意事项和文件监控功能。最后,文章简要介绍了如何在分布式环境中部署GatewayWorker以实现高可用服务。
摘要由CSDN通过智能技术生成

安装Workerman和think-worker

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。而 think-worker则是ThinkPHP官方发布的一个workerman扩展,从2.0+版本完善了对Workerman的支持。

Workerman是一个纯PHP的实现,因此基本上不需要特殊的安装,你只需要通过composer直接安装即可。

composer require workerman/workerman

注意,最新版本的workerman已经统一了Linux和Windows版本,因此不需要单独安装windows版本了。

事实上在安装think-worker扩展的时候会自动安装workerman依赖包,所以直接在你的项目根目录下运行下面的命令安装扩展,如果你还没有安装workerman的话也会自动安装。

composer require topthink/think-worker

本文中的内容以最新版本的扩展为例(最好确保安装的是V2.0.8+版本,可能部分功能老版本的扩展不支持),如果你的扩展版本较旧,请更新框架或者扩展版本。

ThinkPHP5+的扩展都是基于Composer安装的,所以确认你已经安装了Composer。

如果你已经有自己的ThinkPHP5.1项目了,为了支持最新的特性,建议更新到最新版本(V5.1.20+),然后可以在应用根目录下使用下面命令安装扩展。

composer require topthink/think-worker

会安装最新的稳定版本的think-worker扩展。

如果你是第一次使用ThinkPHP5.1,那么可以先创建一个初始项目,然后再安装扩展,依次执行下面的命令即可。

composer create-project topthink/think tp cd tp composer require topthink/think-worker

启动Workerman HTTP服务

第一个场景(也是该扩展最重要的一个场景),毕竟大部分使用think-worker扩展的用户都是在使用ThinkPHP开发网站或者项目,使用think-worker扩展可以让你的产品直接部署到Workerman上,并且享受下面的优势:

  • 无需对代码进行改造就能带来性能的数倍提升;
  • 可以在Apache/Nginx等传统WEB服务器和Workerman之间切换部署;

简单点说,就是你可以在传统模式下开发你的应用,然后直接部署到Workerman上运行,但无需针对Workerman写任何的处理代码。

安装完扩展后,你什么都不需要做,最简单的就是直接在命令行(应用根目录下面)下执行:

php think worker

启动成功后会显示类似下面的信息

Starting Workerman http server... Workerman[think] start in DEBUG mode ----------------------- WORKERMAN ----------------------------- Workerman version:3.5.13 PHP version:7.2.7-0ubuntu0.18.04.2 ------------------------ WORKERS ------------------------------- user worker listen processes status kancloud thinkphp http://0.0.0.0:2346 4 [OK] ---------------------------------------------------------------- Press Ctrl+C to stop. Start success.

可以看到已经在0.0.0.0:2346启动一个HTTP Server服务端(默认启动的是调试模式),下面我们可以直接访问当前的应用。

http://localhost:2346

如果你之前已经有运行一个80端口的WEB服务,可以同时访问,你也可以比较下两个页面的区别。

如果你是刚创建的项目,那么可以直接看到ThinkPHP5.1的欢迎页面。

 

否则你会看到你的项目首页。

守护进程模式

如果需要使用守护进程模式运行(只支持Linux环境),可以使用

php think worker -d

会看到类似下面的信息:

Starting Workerman http server... ----------------------- WORKERMAN ----------------------------- Workerman version:3.5.13 PHP version:7.2.7-0ubuntu0.18.04.2 ------------------------ WORKERS ------------------------------- user worker listen processes status kancloud thinkphp http://0.0.0.0:2346 4 [OK] ---------------------------------------------------------------- Input "php think stop" to stop. Start success.

注意,最后一句php think stop提示信息并不正确,这是由于Workerman没有准确定位到入口文件导致。stop命令的正确用法,我们会在后面讲到。

基本操作(只支持Linux环境)

这一节的内容只支持Linux环境

可以在命令行使用

php think worker [操作]

如果没有输入任何操作,则默认为start操作。

支持的操作包括:

操作

描述

start

启动服务(默认操作)

reload

平滑重启

stop

停止服务

restart

重启服务

status

查看服务运行信息

connections

查看连接信息

如果要停止服务,可以使用

php think worker stop

reload服务

php think worker reload

stop服务

php think worker stop

restart服务

php think worker restart

restart和reload的区别是,restart会先stop然后start,而reload则是平滑重启服务,不会中断服务。

配置文件

HTTPServer的参数可以在应用配置目录下的worker.php里面配置,该文件会在扩展安装的时候自动生成(如果没有则可以自己创建)。

扩展自带的配置参数主要包括:

配置参数

描述

默认值

host

监听地址

0.0.0.0

port

监听端口

2346

root

WEB根目录

public目录

app_path

应用目录(守护进程模式必须设置)

自动识别

file_monitor

是否监控文件更改(V2.0.9+)

false

file_monitor_interval

监控文件间隔(秒)(V2.0.9+)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值