| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- <?php
 
- /**
 
-  * This file is part of workerman.
 
-  *
 
-  * Licensed under The MIT License
 
-  * For full copyright and license information, please see the MIT-LICENSE.txt
 
-  * Redistributions of files must retain the above copyright notice.
 
-  *
 
-  * @author walkor<walkor@workerman.net>
 
-  * @copyright walkor<walkor@workerman.net>
 
-  * @link http://www.workerman.net/
 
-  * @license http://www.opensource.org/licenses/mit-license.php MIT License
 
-  */
 
- /**
 
-  * 用于检测业务代码死循环或者长时间阻塞等问题
 
-  * 如果发现业务卡死,可以将下面declare打开(去掉//注释),并执行php start.php reload
 
-  * 然后观察一段时间workerman.log看是否有process_timeout异常
 
-  */
 
- //declare(ticks=1);
 
- /**
 
-  * 聊天主逻辑
 
-  * 主要是处理 onMessage onClose 
 
-  */
 
- use \GatewayWorker\Lib\Gateway;
 
- //use \GatewayWorker\Lib\DbConnection;
 
- //use think\Db;
 
- use think\App;
 
- class Events
 
- {
 
-     public static function onWorkerStart(){
 
-         App::initCommon();
 
-         //$info = Db::name('gateway_test')->insertGetId(['msg'=>'onWorkerStart','datetime'=>date('Y-m-d H:i:s')]);
 
-     }
 
-     /**
 
-      * 有消息时
 
-      * @param int $client_id
 
-      * @param mixed $message
 
-      */
 
-     public static function onMessage($client_id, $message)
 
-     {
 
-          //echo $message.PHP_EOL;
 
-          //file_put_contents('1.json',$message.PHP_EOL,FILE_APPEND);
 
-          //$info = Db::name('gateway_test')->insertGetId(['msg'=>'[msg]'.$message,'datetime'=>date('Y-m-d H:i:s')]);
 
-          //Gateway::sendToAll($client_id.'说:'.$message);
 
-          return;
 
-         /* $message = json_decode($message,true);
 
-          if(is_array($message)){
 
-              self::changestatus($message);
 
-          }else{
 
-              //echo 'default';
 
-          }*/
 
-          //return ;
 
-          /*if(is_array($message) && isset($message['action']) && $message['action'] == 'changestatus'){
 
-              self::changestatus($message);
 
-          }else{
 
-              echo 'default';
 
-          }
 
-          return ;*/
 
-     }
 
-     /**
 
-      * 当客户端连接时触发
 
-      * 如果业务不需此回调可以删除onConnect
 
-      * @param int $client_id 连接id
 
-      */
 
-     /*public static function onConnect($client_id)
 
-     {
 
-         // 向当前client_id发送数据
 
-         Gateway::sendToClient($client_id, "Hello $client_id");
 
-         // 向所有人发送
 
-         Gateway::sendToAll("$client_id login");
 
-     }*/
 
- 	/*{
 
-         'action':'changestatus',
 
-          "uid": "1",
 
-          "type": "video",'audio'
 
-          "value": "0",或‘1’
 
-          "nowtime": "1234567890 ",
 
-          "token": "edbf8a75-8e36-41f5-989f-7b3d067ccc83"
 
-     }*/
 
-     //修改用的通话状态
 
-     private static function changestatus($message){
 
-         //dump($message);
 
-         if(isset($message['uid']) && isset($message['value'])){
 
-             $redis = newredis();
 
-             $redis->set('gg_matching_uid_'.$message['uid'], $message['value'], null);
 
-         }
 
-         return;
 
-     }
 
-     //聊天扣钱
 
-     private static function userchat(){
 
-         $price = config('site.typing_min_price');
 
-         //扣费
 
-         Db::startTrans();
 
-         if(isset($message['uid'])){
 
-             $rs = model('wallet')->lockChangeAccountRemain($message['uid'],'gold',-$price,13,'','',0);
 
-             if($rs['status'] === false){
 
-                 Db::rollback();
 
-             }
 
-         }
 
-         Db::commit();
 
-     }
 
-    
 
-     /**
 
-      * 当客户端断开连接时
 
-      * @param integer $client_id 客户端id
 
-      */
 
-     public static function onClose($client_id)
 
-     {
 
-         // debug
 
-         /* echo "client:{$_SERVER['REMOTE_ADDR']}:{$_SERVER['REMOTE_PORT']} gateway:{$_SERVER['GATEWAY_ADDR']}:{$_SERVER['GATEWAY_PORT']}  client_id:$client_id onClose:''\n";
 
-        
 
-          // 从房间的客户端列表中删除
 
-          if(isset($_SESSION['room_id']))
 
-          {
 
-              $room_id = $_SESSION['room_id'];
 
-              $new_message = array('type'=>'logout', 'from_client_id'=>$client_id, 'from_client_name'=>$_SESSION['client_name'], 'time'=>date('Y-m-d H:i:s'));
 
-              Gateway::sendToGroup($room_id, json_encode($new_message));
 
-          }*/
 
-     }
 
-     public static function onWorkerStop(){
 
-         //$info = Db::name('gateway_test')->insertGetId(['msg'=>'onWorkerStop','datetime'=>date('Y-m-d H:i:s')]);
 
-     }
 
-   
 
- }
 
 
  |