소스 검색

Merge branch '20241106_lj_chat' into dev

AI 4 달 전
부모
커밋
48db0cf51d
2개의 변경된 파일35개의 추가작업 그리고 12개의 파일을 삭제
  1. 27 1
      app/Controller/ChatController.php
  2. 8 11
      app/Controller/WebSocketController.php

+ 27 - 1
app/Controller/ChatController.php

@@ -73,6 +73,8 @@ class ChatController extends AbstractController
        
         return $result ? Result::success($result['message']) : Result::error($result['message']);
     }
+
+   
     /**
      * 话题分类
      * @return array
@@ -221,8 +223,32 @@ class ChatController extends AbstractController
             $redisClient->setUserFriends((string)$requireData['user_id'], $myFriends['data']);
             $myFriends = $this->chatServiceClient->getFriendsList(['user_id' => $frindid, 'status' => 2]);
             $redisClient->setUserFriends((string)$frindid, $myFriends['data']);
+            $result =  $redisClient->getUserFriends((string)$requireData['user_id']);
+            var_dump($result,'redis-结果');
+            $result =  $redisClient->getUserFriends((string)$frindid);
+            var_dump($result,'redis-结果');
         }
-        return $result && $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
+        return $result && $result['code'] != 0 ? Result::success($result['data']) :     Result::error($result['message']);
+    }
+     /**
+     * 批量设置redis好友
+     * @return array
+     */
+    public function setFriends()
+    {
+        //获取所有用户
+        $userList = $this->userServiceClient->getUserList(['page' => 1, 'pageSize' => 1000 ]);
+        //获取id,循环写入redis
+        $userList = $userList['data']['rows'];
+        var_dump($userList,'111111111111');
+        
+        $redisClient = new RedisService();
+        foreach ($userList as $key => $value) {
+            var_dump($value,'----------------------');
+            $myFriends = $this->chatServiceClient->getFriendsList(['user_id' => $value['id'], 'status' => 2]);
+            $redisClient->setUserFriends((string)$value['id'], $myFriends['data']);
+        }
+        return Result::success();
     }
 
     /**

+ 8 - 11
app/Controller/WebSocketController.php

@@ -41,15 +41,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
     protected $receiveHandle;
     protected $server;
 
-    // public function __construct(Server $server)
-    // {
-    //     $this->server = $server;
-    // }
-    // public function send( $fd, $data): void
-    // {
-    //     $this->server->send((int) $fd, json_encode($data));
-    // }
-
+    
     public function onMessage($server, $frame): void
     {
         //把数据推给前端
@@ -85,8 +77,13 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
             //判断$result['receiver_id']是否是好友
         $myFriendsID = array_column($myFriendsArr, 'friend_id');
         if (!in_array($result['receiver_id'], $myFriendsID)) {
-            $result['content'] = '您还不是好友,无法发送消息!';
-            $server->push((int) $frame->fd, json_encode($result));
+            $myFriends = $this->chatServiceClient->getFriendsList(['user_id' => $userId, 'status' => 2]);
+            $redisClient->setUserFriends($userId, $myFriends['data']);
+            $myFriendsArr = $myFriends['data'];
+                if (!in_array($result['receiver_id'], $myFriendsID)) {
+                    $result['content'] = '您还不是好友,无法发送消息!';
+                    $server->push((int) $frame->fd, json_encode($result));
+                }
             return;
         }
             //给自己推一条数据