希望能在Gateway类里面增加一个函数

longhaishan

我使用的thinkPHP和workMan结合的模式,如果用户在前端调用接口的时,遇到workman异常了或者没有启动,前端的接口代码就直接报错了。
 
希望增加一个 Gateway::Connect($registerAddress)并且这个函数可以返回是否已经成功连接到注册中心。
这样我们在开发的过程中发现连接注册中心失败,就使用webHook来重新启动服务器的workMan。
 
希望大大能够看见,满足这一个小小的要求。

<?php

namespace app\index\controller;

use GatewayClient\Gateway;
use think\App;
use think\Controller;

class Index extends Controller
{

    public function __construct(App $app = null)
    {
        parent::__construct($app);
        Gateway::$registerAddress = '127.0.0.1:15670';
    }

    public function index()
    {
        return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V5.1<br/><span style="font-size:30px">12载初心不改(2006-2018) - 你值得信赖的PHP框架</span></p></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="eab4b9f840753f8e7"></think>';
    }

    public function hello($name = 'ThinkPHP5')
    {
        return 'hello,' . $name;
    }

    public function ip()
    {
        return json(array(
            'ip' => $this->request->server('REMOTE_ADDR')
        ));
    }

    public function getlist()
    {
        return json(array(
            'code' => 0,
            'count' => Gateway::getUidCountByGroup('proxy'),
            'list' => Gateway::getUidListByGroup('proxy')
        ));
    }

    public function subbad()
    {
        $ip = $this->request->param('ip');
        if (Gateway::isUidOnline($ip)) {
            $clients = Gateway::getClientIdByUid($ip);
            foreach ($clients as $key => $value) {
                Gateway::closeClient($value);
            }
            return json(array(
                'code' => 0,
                'msg' => '已重启该客户端'
            ));
        } else {
            return json(array(
                'code' => -1,
                'msg' => '该客户端不在线'
            ));
        }
    }
}
1981 1 0
1个回答

walkor 打赏

感谢你的建议。
小众的需求加到自己的项目代码中吧,框架里不会添加小众的需求,否则框架越来越臃肿,这个不是大家想看到的。
 

  • 暂无评论
年代过于久远,无法发表回答
×
🔝