123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- namespace App\Http\Controllers;
- use App\Models\Kele;
- use App\Workerman\Events;
- use GatewayWorker\BusinessWorker;
- use GuzzleHttp\Client;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
- use Workerman\Worker;
- use GatewayWorker\Lib\Gateway;
- class IndexController extends Controller
- {
- public function index($data){
- $kele=Kele::find(1);
- $kele->name=$data;
- $kele->save();
- }
- public function websocket(){
- dd(1);
- // $client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1);
- //
- //// 推送的数据,包含uid字段,表示是给这个uid推送
- //
- // $data = array('uid'=>'uid1', 'percent'=>'88%');
- //
- //// 发送数据,注意5678端口是Text协议的端口,Text协议需要在数据末尾加上换行符
- //
- // fwrite($client, json_encode($data)."\n");
- //
- //// 读取推送结果
- //
- // echo fread($client, 8192);
- // 转发消息给对应的客户端
- // Gateway::sendToAll(['content']);
- // $re=new Events();
- // $re->broadcast('sdfasd');
- $message='{"cmd":"ping","sn":"T69174","timestamp":1682491407}';
- $id='7f00000108fd00000001';
- // \GatewayWorker\Lib\Gateway::sendToCurrentClient($message);
- Gateway::sendToUid($id,$message);
- Gateway::sendToClient($id,$message);
- dd(json_decode($message,true));
- }
- /*
- * 判断onMessage类型
- * ***/
- public function JudgeMessage($client_id,$message){
- try {
- $re=json_decode($message,true);
- if (!isset($re['cmd'])){
- Gateway::sendToClient($client_id,$message);
- }
- if ($re['cmd']=='declare'){
- $this->declare($client_id,$re);
- }elseif ($re['cmd']=='ping'){
- $this->ping($client_id,$re);
- }elseif($re['cmd']=='to_client'){
- $data=$re['data'];
- switch ($data['cmd']){
- case 'addUserRet'://下发人员信息
- $this->addUserRet($client_id,$re);
- break;
- case 'delAllUserRet'://删除全部信息的处理
- $this->delAllUserRet($client_id,$data);
- default:
- $this->delAllUserRet($client_id,$data);
- break;
- }
- }
- }catch (\Exception $exception){
- Log::error('出错了啊:'.$exception->getMessage());
- Gateway::sendToClient($client_id,$message);
- }
- }
- /*
- * 心跳
- * ***/
- public function ping($client_id,$data){
- $message=[
- 'cmd'=>'pong'
- ];
- Log::error($client_id.'这是心跳'.json_encode($data));
- Gateway::sendToClient($client_id,json_encode($message));
- //将设备信息记录下来
- $url='http://api.szy.admin.cliu.cc/api/ws/ping?sn='.$data['sn'].'&time='.$data['timestamp'].'&client_id='.$client_id;
- $client=new Client();
- $client->get($url);
- }
- /*
- * 第一次连接
- * **/
- public function declare($client_id,$data){
- $message=[
- 'cmd'=>'declare',
- 'message'=>'success'
- ];
- Log::error('这是第一次连接'.json_encode($data));
- //应该不用返回信息
- Gateway::sendToClient($client_id,json_encode($message));
- //将设备信息记录下来
- $url='http://api.szy.admin.cliu.cc/api/ws/device?sn='.$data['sn'].'&time='.$data['timestamp'].'&client_id='.$client_id;
- $client=new Client();
- $client->get($url);
- }
- /*
- * 下发人员信息时返回的信息
- * ***/
- public function addUserRet($client_id,$data){
- // Log::error('这是下发人员信息:client_id:'.$client_id);
- // Log::error($data);
- if ($data['data']['code']!=0){
- //下发人员信息不成功的逻辑处理
- Log::error('不成功');
- //将设备信息记录下来
- $url='http://api.szy.admin.cliu.cc/api/ws/SendError?sn='.$data['form'].'&phone='.$data['data']['user_id'].'&client_id='.$client_id;
- $client=new Client();
- $client->get($url);
- }else{
- //下发成功的逻辑处理
- $url='http://api.szy.admin.cliu.cc/api/ws/SendSucc?sn='.$data['form'].'&phone='.$data['data']['user_id'].'&client_id='.$client_id;
- $client=new Client();
- $client->get($url);
- }
- }
- /*
- * 全部删除,返回信息
- * ****/
- public function delAllUserRet($client_id,$data){
- Log::error($data);
- if ($data['code']==0){
- Log::error('删除全部信息成功!');
- }
- }
- public function demos(){
- $index=new TcpController();
- $index->Accept(14321,'FA73502771890126,http://fangw.jiuweiyun.cn/api/auth/230329143852O2TNZGM_0000 CL1685698345ED');
- }
- }
|