# 附錄:更新日志
##  2.7.5.1 [更多歷史記錄請點擊>>](https://github.com/tmtbe/SwooleDistributed/releases)
### 由于日志過多此處日志已停止更新 最新更新日志 [請點擊>>](https://github.com/tmtbe/SwooleDistributed/releases)
.........
### 2018-01-02
1.新增Actor模型,可創建Actor,加速游戲開發。
Actor::create(TestActor::class, "actor");
Actor::call("actor", "test");
Actor::call("actor", "destroy");
2.修復404頁面http頭不對的問題
## 2.7.5
### 2017-12-29
1.增加了TimerCallBack,通過CatCache和EventDispatch實現了按時間觸發的消息隊列,重啟服務器可恢復,使用簡單。
需要開啟CatCache,延遲調用Model方法。
$token = yield TimerCallBack::addTimer(2,TestModel::class,'testTimerCall',[123]);
$this->http_output->end($token);
public function testTimerCall($value,$token)
{
var_dump($token);
TimerCallBack::ack($token);
}
2.修復了集群下的一些錯誤。
## 2.7.4
### 2017-12-20
#####
1.增加CatCache,仿Redis可落地高速緩存,可以在某些情況下代替Redis,訪問QPS比Redis高。可以配置catCache.php,設置自動落地表的時間和位置。可以通過設置CatCache的RPC代理,實現自己的緩存方法調用。
2.完善Process進程管理
3.修復一些bug
## 2.7.3.3
### 2017-12-08
1.backstage可以設置bin_path
2.Install可以新增文件
3.小bug修復
## 2.7.3.1
### 2017-12-04
1.修復Cache存在的bug
2.后臺監控整理(VIP)
熱烈慶祝群主貓咖店開張~留個紀念,來深圳擼貓啊
## 2.7.3
### 2017-12-04
1.修復Cache存在的bug
2.后臺監控整理(VIP)
熱烈慶祝群主貓咖店開張~留個紀念,來深圳擼貓啊
## 2.7.2
### 2017-12-01
##### 正式版本
1.修復inotify在虛擬機不工作的問題
2.修復了task的一個內存泄露的隱患
3.task無論是否有返回始終都會有回調
## 2.7.1
### 2017-11-22
1.修復websocket進行reload的時候會丟失request信息的問題
2.修復了setDebug導致報錯的問題
3.修復了Task中拋出異常有機會導致報錯的問題
4.修復了監控服務器運行時間統計錯誤的問題
## 2.7.0.3
### 2017-11-16
##### 正式版本
1.“$SYS”服務器監控專用訂閱主題,開發者可以訂閱$SYS主題獲得服務器監控信息
2.服務器間的RPC由單向通知改為雙向交互
3.UID現在不限制為int,可以使用String。
4.Controller的onExceptionHandle方法參數類型由Exception改為了Throwable
5.協程邏輯進一步得到了優化
6.增加Timer定時器,該定時器在多進程中共享
7.各進程間,用戶進程和worker進程間均可以進行RPC通訊
## 2.7.0-beta
### 2017-11-08
#####
請注意這是一個測試版本,包含了一些前瞻性的功能,雖然經過了初步的測試,但仍然有可能會導致系統BUG的出現
1.“$SYS”服務器監控專用訂閱主題,開發者可以訂閱$SYS主題獲得服務器監控信息
2.服務器間的RPC由單向通知改為雙向交互
3.增加Timer定時器,該定時器在多進程中共享,A進程創建了定時B進程可以取消定時,可以在Controller,Model中使用,但請注意有嚴格使用方式
的規范,使用不當容易導致數據錯亂。
4.UID現在不限制為int,可以使用String。
5.Controller的onExceptionHandle方法參數類型由Exception改為了Throwable
6.協程邏輯進一步得到了優化
7.一些細節方面的檢修
## 2.6.5
### 2017-10-30
#####
1.Server下的例子均移到App下了
2.ports.php配置增加了method_prefix,event_controller_name,close_method_name,connect_method_name,bussiness.php配置去除了相關配置,詳情見 http://docs.youwoxing.net/399763
3.優化服務器信息打印
4.去除了AppServer中的setDebugMode函數,debug模式改為命令行
php start_swoole_server.php start -de(或者-debug)
5.命令行debug模式增加了過濾參數--f,比如下面將只顯示包含"[ip] => 127.0.0.1"的信息,可以接多個參數,參數間是或的邏輯關系。
php start_swoole_server.php start -de --f "[ip] => 127.0.0.1"
6.協程task現在可以捕獲到task拋出的異常了
7.同步模式Task出錯會有詳細的報錯
8.主題訂閱樹支持$SYS標識
## 2.6.4
### 2017-10-26
#####
1.修復不開啟Mysql時的報錯問題
2.修復websocket端口不能兼容使用http中間件的問題
3.修復了GrayLog日志插件配置上的bug
4.增加了coroutineGetAllUids方法,可以獲取到所有在線的uid,支持集群
## 2.6.3
### 2017-10-26
##### 影響范圍:2.6.x版本,tcp和websocket協議的close和connect回調函數,http版本不受影響。
1. 2.6.x版本用戶請盡快升級至2.6.3版本。
2. 2.6.x版本存在客戶端close和connect回調無法被正確執行的問題,請升級2.6.3版本修復。
## 2.6.2
### 2017-10-25
####
##### 運行 composer update升級
1.修復AMQPTTASK bug
2.修復MQTT Client bug
3.修復CONSUL 配置 bug
## 2.6.1 正式版本發布
### 2017-10-18
#### 正式版本,更新此版本需要重新設置配置文件,主要在于ports.php配置需要添加中間件。
1.AppServer開啟debug模式可以看到請求調用鏈,貫穿請求過程中的強大Context http://docs.youwoxing.net/425321
2.AOP的支持
3.Controller和Model開放__construct,可以設置特殊AOP代理
4.協程調度器重新梳理優化
5.添加中間件處理模塊 http://docs.youwoxing.net/425118
6.默認添加了上海時區
7.server.php中增加了allow_ServerController,設置為false時將不能訪問Server包下的Controller,建議線上填寫false
8.fix ws多端口報錯bug
9.fix 循環loader引發的死循環問題
10.fix 用戶進程調用mysql,redis的錯誤問題
11.fix 細微bug
## 2.6.1-beta
### 2017-10-16
1.Process中start方法改為了虛函數,不需要被繼承了,start方法中也可以使用協程。
2.AppSerevr開啟debug模式可以看到調用鏈
3.報錯會打印調用鏈的運行狀態
4.增加了基礎的AOP模式
## 2.5.6-beta
### 2017-10-11
#### 這是一個測試版本,增加了中間件,和深度優化了協程調度。
1.ports.php中添加了middlewares字段可以自定義中間件模塊
2.修復了process中使用協程的問題
## 2.5.5
### 2017-09-27
1.getCloseControllerName改名為getEventControllerName
2.添加getConnectMethodName
## 2.5.4
### 2017-09-26
#### 設計問題廢除了AppServer中的onUidCloseClear方法。
#### 增加了getCloseControllerName與getCloseMethodName方法。
## 2.5.3
### 2017-09-26
#### SD框架正式支持SSL。
#### 通過Ports.php配置文件配置HTTPS,WSS。
```php
$config['ports'][] = [
'socket_type' => PortManager::SOCK_HTTP
'socket_name' => '0.0.0.0',
'socket_port' => 8081,
'pack_tool' => 'LenJsonPack',
'route_tool' => 'NormalRoute',
'socket_ssl' => true,
'ssl_cert_file' => $ssl_dir . '/ssl.crt',
'ssl_key_file' => $ssl_dir . '/ssl.key',
];
```
## 2.5.2
### 2017-09-25
1.Mysql支持RAW模式
```php
$selectMiner = $this->mysql_pool->dbQueryBuilder->select('*')->from('account');
$selectMiner = $selectMiner->where('', '(status = 1 and dec in ("ss", "cc")) or name = "kk"', Miner::LOGICAL_RAW);
```
2.修復onOpenServiceInitialization中不能使用mysql的bug
## 2.5.1
### 2017-09-15
1.AMQP異步任務處理系統
2.MQTT簡易服務器
## [更多歷史記錄請點擊>>](https://github.com/tmtbe/SwooleDistributed/releases)
- Introduction
- SD 3.X文檔連接
- 導言
- 用戶案例
- 基于Swoole擴展分布式全棧開發框架
- 選擇SD框架助力企業開發
- 捐贈SwooleDistributed項目
- 框架性能報告
- 更新日志
- VIP服務福利
- 安裝與配置
- 【推薦】全自動安裝部署
- 環境要求
- 使用Composer安裝/更新SD框架
- 通過Docker安裝
- 代碼結構
- 啟動命令
- 服務器配置
- 服務器基礎配置server.php
- 客戶端協議配置client.php
- business.php
- log.php
- 微服務及集群配置consul.php
- fileHeader.php
- mysql.php
- redis.php
- 定時任務配置timerTask.php
- 服務器端口配置ports.php
- catCache.php
- 驗證服務啟動成功
- 微服務-Consul
- 日志工具-GrayLog
- 集群-Cluster
- 內核優化
- 入門教學
- 開發流程
- 開發前必讀
- 開發規范
- 基本流程
- 框架入口
- Model數據模型
- Controller控制器
- 協程
- 協程基礎
- 迭代器
- 調度器
- 使用協程的優勢
- 通過協程的方法屏蔽異步同步的區別
- Select多路選擇器
- 協程Sleep
- 通用協程方法
- 設置超時
- 設置無異常
- 設置降級函數
- initAsynPools
- dump
- 封裝器與路由器
- 封裝器
- sendToUid
- 路由器
- sendToUids
- 對象池
- 擴展組件
- 中間件
- Redis使用介紹
- RedisAsynPool
- Redis具體使用
- sendToAll
- RedisRoute
- Redis+Lua
- Mysql使用介紹
- MysqlAsynPool
- Mysql返回值
- 如何獲取構建的mysql語句
- 如何執行一個SQL
- 如何執行事務
- stopTask
- Mysql具體使用
- 異步客戶端
- Loader
- MqttClient
- model
- SdTcpRpcPool
- task
- HttpClientPool
- view
- TcpClientPool
- AMQP
- initialization
- Memory
- destory
- Cache
- Lock
- Pool
- EventDispatcher
- Process
- Cluster
- TimerTask
- Reload
- Consul
- Context
- 自定義進程
- 進程間RPC
- $http_input
- CatCache
- $http_output
- TimerCallBack
- 專題
- HTTP專欄
- TCP專欄
- 基礎知識
- WebSocket專欄
- 微服務
- Consul配置
- RPC
- REST
- AMQP異步任務系統
- MQTT簡易服務器
- Docker化以及資源編排
- 快速搭建公司內部統一的開發環境
- 使用HTTPS/WSS
- 訂閱/發布
- 游戲專題
- 類介紹
- AppServer
- clearState
- onOpenServiceInitialization
- SwooleDistributedServer
- get_instance
- kickUid
- bindUid
- unBindUid
- coroutineUidIsOnline
- coroutineCountOnline
- setTemplateEngine
- isWebSocket
- isTaskWorker
- getSocketName
- initAsynPools
- addAsynPool
- getAsynPool
- getServerAllTaskMessage
- Controller
- onExceptionHandle
- send
- sendToUid
- sendToUids
- sendToAll
- sendToGroup
- close
- getContext
- defaultMethod
- $redis_pool
- $mysql_pool
- $request_type
- $fd
- $uid
- $client_data
- $request
- $response
- $loader
- $logger
- $server
- $config
- Model
- initialization
- destory
- View
- Task
- stopTask
- HttpInput
- postGet
- post
- get
- getPost
- getAllPostGet
- getAllHeader
- getRawContent
- cookie
- getRequestHeader
- server信息
- getRequestMethod
- getRequestUri
- getPathInfo
- HttpOutput
- setStatusHeader
- setContentType
- setHeader
- end
- setCookie
- endFile
- 單元測試