首页 > 上网技巧 > 电脑小技巧 > yii thinkph larverl 框架中使用 worker-man 的...

yii thinkph larverl 框架中使用 worker-man 的 socket

时间:2018-11-03 11:19 作者:QQ地带 我要评论

完美解决在 event 里面 ,onmessage 里面如何 嵌入 thinkphp,使用框架实现回调方法
 
1.安装 composer require tinymeng/worker-socket dev-master
 
2.业务逻辑 在项目 /backend/controllers 下创建文件EventController.php 首先创建控制器类并继承 tinymeng\worker\Server,然后设置属性和添加回调方法
 
2.1 yii框架示例如下:
 
<?php
namespace backend\controllers;
use tinymeng\worker\Server;
use GatewayWorker\Lib\Gateway;
/**
 * EventController controller
 */
class EventController extends Server
{
    /**
     * @var string Socket connect address
     */
    protected $socket = 'websocket://0.0.0.0:1314';
    /**
     * @var string The current class of namespace
     */
    protected $eventHandler = 'backend\controllers\EventController';
    /**
     * Description:  当客户端连接时时触发
     * @param $client_id
     */
    public static function onConnect($client_id){
        echo 'client_id : '.$client_id. ', connect ' .PHP_EOL;
    }
    /**
     * Description:  当客户端发来消息时触发
     * Author: JiaMeng <666@majiameng.com>
     * @param int $client_id 连接id
     * @param string $data 具体消息
     * @return bool
     */
    public static function onMessage($client_id, $data) {
        echo 'client : '.$client_id. ',message data :'.$data .PHP_EOL;
    }
    /**
     * Description:  当客户端断开连接时触发
     * Author: JiaMeng <666@majiameng.com>
     * Updater:
     * @param int $client_id 连接id
     */
    public static function onClose($client_id) {
        echo 'client_id : '.$client_id .' close '.PHP_EOL;
    }
}
支持workerman所有的回调方法定义(回调方法必须是public static类型)
 
3.配置thinkphp的启动文件然后来启动 workman 这样回调就会主动回调回写的控制中了,可以试一试哦
 
#!/usr/bin/env php
<?php
/**
 * worker-socket command start file.
 */
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
$config = [
    'class' => 'backend\controllers\EventController',
];
$modifyPassword = Yii::createObject($config);

标签: socket
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告