内有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类型)
有谁用过swoole 的 onHandShake()时间来做socket 连接加密 ? 我现在用workerman 没有找到这个
详细信息请查看 http://blog.majiameng.com/index.php/article/2701.html