作者 Your Name

gx

<?php
/**
* @remark :
* @name :socket.php
* @name :Socket.php
* @author :lyh
* @method :post
* @time :2023/8/24 10:43
... ... @@ -9,24 +9,27 @@
namespace App\Helper;
class socket
class Socket
{
public function socket($data){
@file_put_contents(storage_path('logs/lyh_error.log'), var_export(1111, true) . PHP_EOL, FILE_APPEND);
// 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);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($socket, true) . PHP_EOL, FILE_APPEND);
if ($socket === false) {
return response()->json(['error' => 'Socket creation failed']);
}
// 连接到 Socket 服务器
$result = socket_connect($socket, $socketServerIp, $socketServerPort);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($result, true) . PHP_EOL, FILE_APPEND);
if ($result === false) {
return response()->json(['error' => 'Socket connection failed']);
}
// 发送数据到 Socket 服务器
socket_write($socket, $data, strlen($data));
socket_write($socket, 'ceshixiaoxi', strlen($data));
// 从服务器接收数据
$response = socket_read($socket, 1024);
// 关闭 Socket 连接
... ...
... ... @@ -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;
... ... @@ -78,12 +79,14 @@ class LoginController extends BaseController
*/
public function autologin(UserLoginLogic $logic, EncryptUtils $encrypt)
{
@file_put_contents(storage_path('logs/lyh_error.log'), var_export(11111, true) . PHP_EOL, FILE_APPEND);
$serviceSettingModel = new Service();
$info = $serviceSettingModel->read(['type'=>4]);
if($info === false){
$this->response('当前访问地址不存在',Code::USER_ERROR);
}
$data = $encrypt->unlock_url($this->param['code'], $info['values']);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($data, true) . PHP_EOL, FILE_APPEND);
$data = json_decode($data, true);
if(!isset($data['project_id']) && !isset($data['user_id'])){
$this->response('无效Code',Code::USER_ERROR);
... ... @@ -167,26 +170,15 @@ class LoginController extends BaseController
public function eventMessage(){
$message = file_get_contents("php://input");
$message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR);
<<<<<<< HEAD
@file_put_contents(storage_path('logs/hook/wx.log'), var_export($message, true) . PHP_EOL, FILE_APPEND);
=======
$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){
}
$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);
>>>>>>> cb4013abb5967a24f5c482c21f3a93a48789077d
return "<xml>
<ToUserName><![CDATA[$message->FromUserName]]></ToUserName>
<FromUserName><![CDATA[$message->ToUserName]]></FromUserName>
... ... @@ -223,4 +215,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);
... ...