| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- <?php
 
- use Workerman\Worker;
 
- require_once __DIR__ . '/Autoloader.php';
 
- require_once './Lib/mysql/src/Connection.php';
 
- use \Workerman\Lib\Timer;
 
- $ws_worker = new Worker("websocket://0.0.0.0:8888");
 
- // global $clientArr;
 
- // $clientArr =[];
 
- $ws_worker->onWorkerStart = function($ws_worker)
 
- {
 
-     // 将db实例存储在全局变量中(也可以存储在某类的静态成员中)
 
-     global $websocketDB;
 
-     $websocketDB = new \Workerman\MySQL\Connection('rm-wz98r5cn33zq4ou980o.mysql.rds.aliyuncs.com', '3306', 'lampmanager', 'lampmanager@2019', 'lampmanager');
 
-     Timer::add(0.5, function()use($ws_worker){
 
-     	// global $clientArr;
 
-     	global $websocketDB;
 
-         $connections = $ws_worker->connections;
 
-         // var_dump($connections);
 
-         $data = $websocketDB->select('id,client,msg')->from('message')->query();
 
-         if (!empty($data)) {
 
-         	foreach ($data as $v) {
 
-         		if (!empty($connections[$v['client']])) $connections[$v['client']]->send($v['msg']); 
 
-         		$websocketDB->query("DELETE FROM `message` WHERE id='{$v['id']}'");
 
-         	}
 
-         }
 
-     });
 
- };
 
- // 启动1个进程对外提供服务
 
- $ws_worker->count = 1;
 
- // 客户端连接回调
 
- $ws_worker->onConnect = function($connection)
 
- {
 
- 	// global $clientArr;
 
- 	// 标记连接的客户端
 
-     // $key=uniqid();
 
-     $key = $connection->id;
 
-     $data = array('status'=>'0000','msg'=>'操作成功','data'=>['clientid'=>$key,'status'=>1]);
 
-     $connection->send(json_encode($data));
 
-     // $clientArr[$key] = $connection;
 
- };
 
- // 客户端断开连接
 
- // $ws_worker->onClose = function($connection)
 
- // {
 
- // 	global $clientArr;
 
- //     if (!empty($clientArr)) {
 
- //     	foreach ($clientArr as $k => $v) {
 
- //     		if ($v == $connection) {
 
- //     			unset($clientArr[$k]);
 
- //     			break;
 
- //     		}
 
- //     	}
 
- //     }
 
- // };
 
- // 运行worker
 
- Worker::runAll();
 
 
  |