Thinkphp6.x 如何配置使用 Workerman

首先我们来了解下什么是Workerman

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。

实现步骤

1、首先通过 composer 安装

composer require topthink/think-worker

windows 服务器需要下载的

composer require workerman/workerman-for-win

2、安装成功后config 目录下,会多出几个文件

3、打开worker_server.php 我们看到他默认的监听端口是2345,下面虽然也提供了一些回调方法,但是毕竟是在配置文件中,我们也不太好扩展,所以我们这时需要自定义workerman服务类

步骤如下:

3.1 新建一个应用,比如命名为http,然后新建一个php 类 Worker.php

<?php

namespace app\http;

use think\worker\Server;

class Worker extends Server
{

    protected $socket = 'websocket://localhost:2345';

    public function onMessage($connection, $data)
    {
        $connection->send("已经收到");
    }

    /**
     * 当连接建立时触发的回调函数
     * @param $connection
     */
    public function onConnect($connection)
    {
        $connection->send("连接成功");
    }

    /**
     * 当连接断开时触发的回调函数
     * @param $connection
     */
    public function onClose($connection)
    {

    }

    /**
     * 当客户端的连接上发生错误时触发
     * @param $connection
     * @param $code
     * @param $msg
     */
    public function onError($connection, $code, $msg)
    {
        echo "error $code $msg\n";
    }

    /**
     * 每个进程启动
     * @param $worker
     */
    public function onWorkerStart($worker)
    {

    }

}

3.2、然后在回到刚才的配置文件worker_server.php,修改worker_class 为你刚才创建的类,定义该参数后,其它配置参数均不再有效。

4、使用Workerman作为HttpServer,启动服务端,至此我们的服务端已经搭建完成了

php think worker:server

出现此图就表示已经开启成功了,切记的是,一定不要关闭,一定不要关闭

5、我们可以新建一个html ,查看一下是否可以正常使用

<html>
    <head>
        <meta charset="utf-8" />
        <title>网页版群聊</title>
    </head>
    <body>
        <script>
            ws = new WebSocket("ws://localhost:2345");
            ws.onopen = function() {
                console.info("webSocket通道建立成功!!!");
                ws.send('hello');
                console.log("给服务端发送一个字符串:hello");
            };
            ws.onmessage = function(even) {
                console.log("收到服务端的消息:" + even.data);
            };
        </script>
    </body>
</html>

预览后,我们可以看到,已经通道已经建立成功了,之后可以随意挥霍你的业务逻辑了

补充一点小知识

使用Workerman也可以作为HttpServer,(ps:一般我们不需要)

他的命令是

php think worker

linux下面可以支持下面指令

php think worker [start|stop|reload|restart|status]

使用Workerman作为HttpServer

他的命令是

php think worker:server

linux下面可以支持下面指令

php think worker:server [start|stop|reload|restart|status]

以上这篇Thinkphp6.x 如何配置使用 Workerman就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持晴川云。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/15145.html

(0)
晴川运维晴川运维
上一篇 2025年10月9日
下一篇 2025年10月9日

相关推荐

  • php怎么实现省市区查询

    本文操作环境:Windows7系统,php7.1版,Dell G3电脑。 PHP实现省市县(区)三级联动查询 什么是联动查询,其实这个东西在生活中非常常见,比如网购(这个几乎人人都…

    网站和优化 2025年9月19日
  • RSA2是啥?PHP-RSA2签名验证怎么实现?

    PHP RSA2 签名算法 RSA2是在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。 该算法在摘要算法上比SHA1WithRSA有更…

    网站和优化 2025年10月11日
  • php怎么实现群发

    本文操作环境:Windows7系统,php7.4版,Dell G3电脑。 php怎么实现群发? php实现短信群发: 近期根据客户的需求做了群发短信和邮件的功能,做一下总结吧 群发…

    网站和优化 2025年7月1日
  • 详解PHP中怎么利用Trait解决单继承问题

    如何破解php单继承魔咒?下面本篇文章给大家介绍一下PHP中怎么利用Trait解决单继承问题,希望对大家有帮助。 我们都知道PHP是单继承语言,但是有些时候我们两个在业务上毫不相干…

    网站和优化 2025年6月9日
  • php高并发测试:防止库存超卖的案例讲解

    在之前的文章《php高并发情形下怎么防止商品库存超卖》中,我们讲到了关于在高并发情况下防止商品库存超卖的相关问题,下面我们一起来看一下防止库存超卖之并发测试的相关内容,希望对大家有…

    网站和优化 2025年6月22日
  • 腾讯云里如何安装php

    本文操作环境:CentOS 7.2系统、PHP7.1.2版、DELL G3电脑 腾讯云里如何安装php? 腾讯云从零搭建PHP运行环境 一、首先我们得注册腾讯云,租用一台服务器,我…

    网站和优化 2025年10月10日
  • php如何实现SSO登录

    本文操作环境:Windows7系统、php7.1版、Dell G3电脑。 php如何实现SSO登录? SSO单点登录设计及PHP实现 建议先熟悉单点登录SSO相关概念。 1、SSO…

    网站和优化 2025年6月23日
  • php是不是彻底被淘汰啦?

    本文操作环境:windows7系统、php8.0版、DELL G3电脑 php是不是彻底被淘汰啦? 我可以肯定的说php没有被淘汰,也不会被淘汰的。 根据W3Techs的报告,截至…

    网站和优化 2025年7月4日
  • php中=是什么意思

    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑 php中=是什么意思? PHP 中基础的赋值运算符是 “=”。这意味着右侧赋值表达式…

    网站和优化 2025年9月23日
  • MongoDB更新文档

    在 MongoDB 中,可以使用 update() 和 save() 方法来更新集合中的文档。其中 update() 方法可以更新现有文档中的值,而 save() 方法则可以使用传…

    网站和优化 2025年6月4日

发表回复

登录后才能评论