內(nèi)有demo http://blog.majiameng.com/workerman_socket.html
可以查看我寫的即時通訊案例 http://www.majiameng.com
完美解決在 event 里面 ,onmessage 里面如何 嵌入 thinkphp,使用框架實現(xiàn)回調(diào)方法
1.安裝[code]composer require tinymeng/worker-socket dev-master[/code]
2.業(yè)務(wù)邏輯
在項目 /application/index/controller 下創(chuàng)建文件Events.php
首先創(chuàng)建控制器類并繼承 tinymeng\worker\Server,然后設(shè)置屬性和添加回調(diào)方法
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: 當(dāng)客戶端連接時時觸發(fā)
* Author: JiaMeng <666@majiameng.com>
* @param $client_id
*/
public static function onConnect($client_id){
echo 'client_id : '.$client_id. ', connect ' .PHP_EOL;
}
/**
* Description: 當(dāng)客戶端發(fā)來消息時觸發(fā)
* 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: 當(dāng)客戶端斷開連接時觸發(fā)
* 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 這樣回調(diào)就會主動回調(diào)回寫的控制中了,可以試一試哦
4.支持workerman所有的回調(diào)方法定義(回調(diào)方法必須是public static類型)
有誰用過swoole 的 onHandShake()時間來做socket 連接加密 ? 我現(xiàn)在用workerman 沒有找到這個