initialize(); // // // } // // /** // * onConnect 事件回调 // * 当客户端连接上gateway进程时(TCP三次握手完毕时)触发 // * // * @access public // * @param int $client_id // * @return void // */ // public static function onConnect($client_id) // { // //一个连接只触发一次 // Tools::log_to_write_txt(['客户端完成TCP握手:'=>"[{$client_id}]"]); // // $json = BaseWssApi::json_wss('onConnect','连接成功',['client_id'=>$client_id]); // Gateway::sendToCurrentClient($json); // } // // public static function onWebSocketConnect($client_id, $data) // { // //// var_export($data); // //对应客户端打开连接, 一个连接只触发一次 // Tools::log_to_write_txt(['客户端打开了websocket连接',$client_id,$data]); // //$res = Tools::set_ok('ok',['client_id'=>$client_id,'msg'=>'客户端打开连接时,发送到服务端的消息:','data'=>$data]); // // // //Gateway::sendToCurrentClient(json_encode($res,JSON_UNESCAPED_UNICODE)); // //$json = BaseWssApi::json_wss('openConnect','打开连接成功',['client_id'=>$client_id,'data'=>$data]); // //Gateway::sendToCurrentClient($json); // } // // /** // * onMessage 事件回调 // * 当客户端发来数据(Gateway进程收到数据)后触发 // * // * 解析消息,根据action处理业务逻辑 // * // * @access public // * @param int $client_id // * @param mixed $data // * @return void // */ // public static function onMessage($client_id, $data) // { // Tools::log_to_write_txt(['客户端发来数据(Gateway进程收到数据).client_id:'.$client_id,$data]); // //$res = Tools::set_ok('ok',['client_id'=>$client_id,'msg'=>'你发来的消息我接收到了:',$client_id=>$data]); // //Gateway::sendToClient($client_id,json_encode($res,JSON_UNESCAPED_UNICODE)); // // //if(empty($data)){ // // $json = BaseWssApi::json_wss('error','消息为空'); // // // // Gateway::sendToClient($client_id, $json); // // return ; // //} // ////解析消息 // //$xunfei_record_config = config('xunfei_record_config'); // //$appId = $xunfei_record_config['appid']; // //$secretKey = $xunfei_record_config['secretKey']; // // // ////解析action // //// 处理接收到的语音数据 // //// 这里需要将二进制数据转换为讯飞API所需的格式 // //// 以下代码仅为示例,具体实现需要根据讯飞API文档进行调整 // //$lfasrClient = new LfasrClient($appId, $secretKey); // //$lfasrClient->sendBinaryData($data, function ($result) use ($client_id) { // // // 处理讯飞API返回的实时转写结果 // // // 将结果发送回客户端 // // Gateway::sendToClient($client_id, json_encode(['type' => 'transcription', 'data' => $result])); // //}); // $obj = new BaseLogic(); // $obj->domsg($client_id,$data); // // } /** * onClose 事件回调 当用户断开连接时触发的方法 * * @param integer $client_id 断开连接的客户端client_id * @return void */ public static function onClose($client_id) { //GateWay::sendToAll("client[$client_id] logout\n"); Tools::log_to_write_txt(['断开连接.client_id:'.$client_id]); //$url = 'https://boomim.playone.cn/api/Partnermerchants/offline'; //Curl::curl_post($url,['clientid'=>$client_id]); (new TyuserLogic())->offline($client_id); } /** * onWorkerStop 事件回调 * 当businessWorker进程退出时触发。每个进程生命周期内都只会触发一次。 * * @param \Workerman\Worker $businessWorker * @return void */ //public static function onWorkerStop(Worker $businessWorker) //{ // //echo "WorkerStop\n"; // Tools::log_to_write_txt(['businessWorker进程退出时触发。每个进程生命周期内都只会触发一次.',$businessWorker]); // //所有人离线,不需要修改所有用户离线状态, // //因为离线后再上线clint_id会重新生成 //} }