<commit_before># think-gateway
基于tp5的gateway worker扩展

### 安装:

1. 创建thinkphp5项目

   ```sh
   composer create-project topthink/think gateway
   ```


2. 添加think-gateway依赖

   ```sh
   composer require evan-li/think-gateway
   ```

   ​

### 简单使用: 

1. 创建一个`Starter`控制器，继承`think\gateway\Server`类,用来启动Worker

   `application/worker/controller/Starter.php`

   ```php
   <?php
   namespace app\worker\controller;

   use think\gateway\Server;

   class Starter extends Server
   {

   }
   ```

2. 将的`start.php`文件拷贝到项目中的`public`目录中
    > 如果是windows系统, 将 `start-for-win.bat` 以及 `start-for-win`目录拷贝到 `public` 目录中

3. 运行服务

   1. 在linux中, 打开控制台, 执行命令: 

      ```sh
      php ./start.php
      ```

   2. windows系统中, 首先要切换依赖包:

      ```sh
      // 移除linux版的gateway-worker依赖
      composer remove workerman/gateway-worker
      // 添加windows版gateway-worker依赖
      composer require workerman/gateway-worker-for-win
      ```

      然后执行 `start-for-win.bat` 批处理文件即可

   *到此为止, 我们的gateway-worker服务就跑起来啦*

4. 分布式部署

   如果需要分布式部署,我们可以通过修改start.php中的配置信息来控制启动哪个服务
    ```php    
    // 定义服务启动项
    define('START_REGISTER', true);
    define('START_GATEWAY', true);
    define('START_BUSINESS', true);
    ```
    以上三项分别控制Register/Gateway/Business的启动服务, 不需要启动哪个服务直接去掉即可
   如: 
   - 只启动Register服务时, 将 `START_GATEWAY` 与 `START_BUSINESS` 项常量注释即可


### 消息处理

处理客户端发送的消息时, 增加一个`MessageHandler`类, 继承`think\gateway\Events`类, 并实现`processMessage`方法即可, 需要注意的是, `processMessage`方法是静态方法<commit_msg>修改readme文件说明<commit_after># think-gateway
基于tp5的gateway worker扩展

### 安装:

1. 创建thinkphp5项目

   ```sh
   composer create-project topthink/think gateway
   ```


2. 添加think-gateway依赖

   ```sh
   composer require evan-li/think-gateway
   ```

   ​

### 简单使用: 

1. 创建一个`Starter`控制器，继承`think\gateway\Server`类,用来启动Worker

   `application/worker/controller/Starter.php`

   ```php
   <?php
   namespace app\worker\controller;

   use think\gateway\Server;

   class Starter extends Server
   {

   }
   ```

2. 将的`start.php`文件拷贝到项目中的`public`目录中
    > 如果是windows系统, 将 `start-for-win.bat` 以及 `start-for-win`目录拷贝到 `public` 目录中

3. 运行服务

   1. 在linux中, 打开控制台, 执行命令: 

      ```sh
      php ./start.php
      ```

   2. windows系统中, 首先要切换依赖包:

      ```sh
      // 移除linux版的gateway-worker依赖
      composer remove workerman/gateway-worker
      // 添加windows版gateway-worker依赖
      composer require workerman/gateway-worker-for-win
      ```

      然后执行 `start-for-win.bat` 批处理文件即可

   *到此为止, 我们的gateway-worker服务就跑起来啦*

4. 分布式部署

   如果需要分布式部署,我们可以通过修改start.php中的配置信息来控制启动哪个服务
    ```php    
    // 定义服务启动项
    define('START_REGISTER', true);
    define('START_GATEWAY', true);
    define('START_BUSINESS', true);
    ```
    以上三项分别控制Register、Gateway、Business的启动服务, 不需要启动哪个服务直接去掉即可
   如: 
   - 只启动Register服务时, 将 `START_GATEWAY` 与 `START_BUSINESS` 项常量注释即可
   > windows 系统中, 直接运行 `start-for-win` 目录中对应服务的文件即可


### 消息处理

处理客户端发送的消息时, 增加一个`MessageHandler`类, 继承`think\gateway\Events`类, 并实现`processMessage`方法即可, 需要注意的是, `processMessage`方法是静态方法
{'fraction_non_alphanumeric': 0.1254587921254588, 'fraction_numerical': 0.00667334000667334, 'mean_word_length': 3.106849315068493, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4242316', 'n_tokens_mistral': 1492, 'n_tokens_neox': 1598, 'n_words': 194}