|
@@ -56,13 +56,17 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
|
|
|
var_dump($result, '-------------1----');
|
|
|
$userInfo = $redisClient->getUserInfo((string) $userId);
|
|
|
+ var_dump($userInfo, '-------------22----');
|
|
|
if ($userInfo) {
|
|
|
$userInfoArr = json_decode($userInfo);
|
|
|
$result['user_avatar'] = $userInfoArr['avatar'];
|
|
|
+ $result['user_name'] = $userInfoArr['user_name'];
|
|
|
} else {
|
|
|
$userInfos = $this->userServiceClient->getUserInfo((int) $userId);
|
|
|
+ var_dump($userInfos, '-------------33----');
|
|
|
$redisClient->setUserInfo($userId, $userInfos['data']);
|
|
|
$result['user_avatar'] = $userInfos['data']['avatar'];
|
|
|
+ $result['user_name'] = $userInfos['data']['user_name'];
|
|
|
}
|
|
|
$myFriends = $redisClient->getUserFriends((string) $userId);
|
|
|
$myFriendsArr = [];
|
|
@@ -81,7 +85,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
return;
|
|
|
}
|
|
|
//组装数据+头像
|
|
|
- if ($result['talk_type'] == 1) {
|
|
|
+ if (isset($result['talk_type']) && $result['talk_type'] == 1) {
|
|
|
//判断$result['receiver_id']是否是好友
|
|
|
$myFriendsID = array_column($myFriendsArr, 'friend_id');
|
|
|
if (!in_array($result['receiver_id'], $myFriendsID)) {
|
|
@@ -106,7 +110,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$message = new MqProducer($saiddata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
|
- var_dump('消息发送成功' . $frame->fd);
|
|
|
+ var_dump('消息发送成功' . $frame->fd,$result);
|
|
|
} catch (\Exception $e) {
|
|
|
var_dump('消息发送失败: ' . $e->getMessage());
|
|
|
$this->retry($message);
|
|
@@ -133,18 +137,19 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
|
|
|
$data['is_read'] = 0;
|
|
|
$server->push((int) $fd, json_encode(value: $data));
|
|
|
- var_dump('消息给好友发送成功' . $fd);
|
|
|
+ var_dump('消息给好友发送成功' . $fd,$data);
|
|
|
// 尝试连接
|
|
|
try {
|
|
|
$chatdata = $result;
|
|
|
$chatdata['action'] = 'recieved';
|
|
|
$chatdata['receiver_id'] = $result['user_id'];
|
|
|
$chatdata['user_id'] = $result['receiver_id'];
|
|
|
+ // $chatdata['user_name'] = $result['user_name'];
|
|
|
$chatdata['is_read'] = 0;
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
|
- var_dump('消息发送成功');
|
|
|
+ var_dump('消息发送成功#');
|
|
|
} catch (\Exception $e) {
|
|
|
var_dump('消息发送失败: ' . $e->getMessage());
|
|
|
$this->retry($message);
|
|
@@ -155,20 +160,21 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$chatdata['action'] = 'recieved';
|
|
|
$chatdata['receiver_id'] = $result['user_id'];
|
|
|
$chatdata['user_id'] = $result['receiver_id'];
|
|
|
+ // $chatdata['user_name'] = $result['user_name'];
|
|
|
$chatdata['is_read'] = 0;
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
|
- var_dump('消息发送成功');
|
|
|
+ var_dump('消息发送成功!');
|
|
|
} catch (\Exception $e) {
|
|
|
var_dump('消息发送失败: ' . $e->getMessage());
|
|
|
$this->retry($message);
|
|
|
}
|
|
|
}
|
|
|
- } else if ($result['talk_type'] == 2) {
|
|
|
+ } else if (isset($result['talk_type']) && $result['talk_type'] == 2) {
|
|
|
//根据群找到 群用户,群发一遍消息
|
|
|
$groupUserList = $this->chatServiceClient->getGroupMembers(['group_id' => $result['receiver_id']]);
|
|
|
- var_dump($groupUserList['data'], '----------------------------------');
|
|
|
+ var_dump($groupUserList['data'], '-----------------############-----------------');
|
|
|
if ($groupUserList['data']) {
|
|
|
$chatdata = $result;
|
|
|
foreach ($groupUserList['data'] as $val) {
|
|
@@ -176,6 +182,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
if ($server->isEstablished((int) $fd)) {
|
|
|
var_dump($fd, $val['user_id']);
|
|
|
$server->push((int) $fd, json_encode($result));
|
|
|
+ var_dump($val, '-------------44----');
|
|
|
try {
|
|
|
//分发说,只记录自己对自己
|
|
|
if ($result['user_id'] == $val['user_id']) {
|
|
@@ -184,6 +191,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$chatdata['group_receiver_id'] = $val['user_id'];
|
|
|
$chatdata['is_read'] = 1;
|
|
|
$chatdata['action'] = 'said';
|
|
|
+ $chatdata['group_name'] = $val['group_name']??'';
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
@@ -195,10 +203,11 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$chatdata['group_receiver_id'] = $result['user_id'];
|
|
|
$chatdata['is_read'] = 0;
|
|
|
$chatdata['action'] = 'recieved';
|
|
|
+ $chatdata['group_name'] = $val['group_name']??'';
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
|
- var_dump('消息发送成功');
|
|
|
+ var_dump('消息发送成功@');
|
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
|
var_dump('消息发送失败: ' . $e->getMessage());
|
|
@@ -212,6 +221,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$chatdata['group_receiver_id'] = $val['user_id'];
|
|
|
$chatdata['is_read'] = 0;
|
|
|
$chatdata['action'] = 'said';
|
|
|
+ $chatdata['group_name'] = $val['group_name']??'';
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
@@ -223,10 +233,11 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
$chatdata['group_receiver_id'] = $result['user_id'];
|
|
|
$chatdata['is_read'] = 0;
|
|
|
$chatdata['action'] = 'recieved';
|
|
|
+ $chatdata['group_name'] = $val['group_name']??'';
|
|
|
$message = new MqProducer($chatdata);
|
|
|
$producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
$re = $producer->produce($message);
|
|
|
- var_dump('消息发送成功');
|
|
|
+ var_dump('消息发送成功$');
|
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
|
var_dump('消息发送失败: ' . $e->getMessage());
|
|
@@ -282,7 +293,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
|
|
}
|
|
|
public function onClose($server, int $fd, int $reactorId): void
|
|
|
{
|
|
|
- var_dump('closed::::::::::::::::::', $fd, "======", $reactorId, "+++++++++++");
|
|
|
+ // var_dump('closed::::::::::::::::::', $fd, "======", $reactorId, "+++++++++++");
|
|
|
$redisClient = new RedisService();
|
|
|
$userId = $redisClient->findUser((string) $fd);
|
|
|
$redisClient->unbind((string) $fd, (int) $userId);
|