作者 lyh

gx

<?php
/**
* @remark :
* @name :socket.php
* @name :Socket.php
* @author :lyh
* @method :post
* @time :2023/8/24 10:43
... ... @@ -9,11 +9,11 @@
namespace App\Helper;
class socket
class Socket
{
public function socket($data){
// Socket 服务器的 IP 和端口
$socketServerIp = '43.154.15.250';
$socketServerIp = '127.0.0.1';
$socketServerPort = 9555; // 替换为实际端口
// 创建一个 TCP Socket 客户端
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
... ...
... ... @@ -14,6 +14,7 @@ use App\Events\WebSocketMessage;
use App\Events\WebSocketMessageSent;
use App\Helper\Arr;
use App\Helper\Common;
use App\Helper\Socket;
use App\Helper\Translate;
use App\Helper\Wechat;
use App\Http\Logic\Bside\User\UserLoginLogic;
... ... @@ -167,21 +168,9 @@ class LoginController extends BaseController
public function eventMessage(){
$message = file_get_contents("php://input");
$message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR);
$arr = [
'ToUserName' => 'gh_27174ac5c9d8',
'FromUserName' => 'oMbcI6gRzvfrU8ssGsEyvzXOO94w',
'CreateTime' => '1693385898',
'MsgType' => 'event',
'Event' => 'subscribe',
'EventKey' => 'qrscene_global-v6_v6',
'Ticket' => 'gQF27zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyWnppdHhWTlRjOEcxTlBpTE5BY2IAAgRjBO9kAwQQDgAA',
];
//查看当前账户是否绑定
$userModel = new UserModel();
$info = $userModel->read(['wechat'=>$message->FromUserName]);
if($info === false){
}
$data = $this->wechatLogin($message->FromUserName);
$socket = new Socket();
$socket->socket(json_encode($data));
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($message, true) . PHP_EOL, FILE_APPEND);
return "<xml>
<ToUserName><![CDATA[$message->FromUserName]]></ToUserName>
... ... @@ -219,4 +208,52 @@ class LoginController extends BaseController
$this->response('success',Code::SUCCESS,['info'=>$info]);
}
/**
* @remark :微信登录处理数据
* @name :wechatLogin
* @author :lyh
* @method :post
* @time :2023/8/31 9:13
*/
public function wechatLogin($wechat){
//查看当前账户是否绑定
$userModel = new UserModel();
$info = $userModel->read(['wechat'=>$wechat]);
if($info === false){
$data = [
'code'=>Code::USER_LOGIN_ERROE,
'message'=>'当前用户未绑定账户,请绑定后',
];
}else {
//获取项目详情
$info = $this->assembleParam($info['mobile'],$info['project_id']);
if(isset($info['token']) && !empty($info['token'])){
//清除上一次用户缓存
Cache::pull($info['token']);
}
//生成新token
$token = md5(uniqid().$info['id']);
//存储缓存
$info['token'] = $token;
Cache::add($token,$info,3600);
//更新用户信息
$this->model->edit(['token'=>$token],['id'=>$info['id']]);
$data = [
'code'=>Code::SUCCESS,
'message'=>'当前用户未绑定账户,请绑定后',
'data'=>$info
];
}
return $data;
}
public function ceshi(){
$data = [
'code'=>Code::USER_LOGIN_ERROE,
'message'=>'当前用户未绑定账户,请绑定后',
];
$socket = new Socket();
return $socket->socket(json_encode($data));
}
}
... ...
... ... @@ -30,10 +30,8 @@ $server->on('open', function ($server, $request) {
$server->on('message', function ($server, $frame) {
$message = $frame->data;
echo "收到消息: $message\n";
// 获取客户端连接的文件描述符
$fd = $frame->fd;
// 回复消息给客户端
$response = "我已收到消息: $message";
$server->push($fd, $response);
... ...