封装composer包,实现thinkphp、larverl、yii框架中使用(使用框架实现回调方法)

879042886

内有demo http://blog.majiameng.com/workerman_socket.html

可以查看我写的即时通讯案例 http://www.majiameng.com

完美解决在 event 里面 ,onmessage 里面如何 嵌入 thinkphp,使用框架实现回调方法

1.安装[code]composer require tinymeng/worker-socket dev-master[/code]
2.业务逻辑
在项目 /application/index/controller 下创建文件Events.php
首先创建控制器类并继承 tinymeng\worker\Server,然后设置属性和添加回调方法

2.1 ThinkPhp框架示例如下:

<?php
/**
* Name: Events.php.
* Author: JiaMeng <666@majiameng.com>
* Description: websocket callback
*/
namespace app\index\controller;

use tinymeng\worker\Server;
use GatewayWorker\Lib\Gateway;

class Events extends Server{
    /**
    * @var string Socket connect address
    */
    protected $socket = 'websocket://0.0.0.0:1314';
    /**
    * @var string The current class of namespace
    */
    protected $eventHandler = 'app\index\controller\Events';

    /**
    * Description: 当客户端连接时时触发
    * Author: JiaMeng <666@majiameng.com>
    * @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 具体消息
    */
    public static function onMessage($client_id, $data) {
        echo 'client : '.$client_id. ',message data :'.$data .PHP_EOL;
    }

    /**
    * Description: 当客户端断开连接时触发
    * Author: JiaMeng <666@majiameng.com>
    * @param int $client_id 连接id
    */
    public static function onClose($client_id) {
        echo 'client_id : '.$client_id .' close '.PHP_EOL;
    }

}

3.配置thinkphp的启动文件然后来启动 workman 这样回调就会主动回调回写的控制中了,可以试一试哦
4.支持workerman所有的回调方法定义(回调方法必须是public static类型)

4641 2 0
2个评论

879042886

有谁用过swoole 的 onHandShake()时间来做socket 连接加密 ? 我现在用workerman 没有找到这个

  • 暂无评论
879042886
  • 暂无评论
年代过于久远,无法发表评论

879042886

2036
积分
0
获赞数
0
粉丝数
2018-08-08 加入
🔝