文本聊天已完成
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
namespace App\Services\GatewayWorker;
|
||||
|
||||
use App\Enum\MessageTypeEnum;
|
||||
use App\Models\im\ChatRoomUserModel;
|
||||
use App\Models\MessageModel;
|
||||
use App\Services\Base\BaseService;
|
||||
use GatewayClient\Gateway;
|
||||
|
||||
@@ -26,7 +28,36 @@ class ImService extends BaseService
|
||||
return ['绑定成功'];
|
||||
}
|
||||
|
||||
public function sendMessage($data, $type = MessageTypeEnum::Text->value)
|
||||
public function getMessageByChatRoomId($chatRoomId)
|
||||
{
|
||||
$message = MessageModel::with([
|
||||
'user',
|
||||
'toUser'
|
||||
])->where('chat_room_id', $chatRoomId)->get();
|
||||
|
||||
if (empty($message)) {
|
||||
return [];
|
||||
}
|
||||
$result = [];
|
||||
$message = $message->toArray();
|
||||
foreach ($message as $v) {
|
||||
$result[] = [
|
||||
'userId' => $v['user_id'],
|
||||
'l' => $v['user_id'] === $this->userId? 'user' : 'to_user',
|
||||
'message_type' => MessageTypeEnum::from($v['type'])->description(),
|
||||
'content' => $v['content'],
|
||||
'nick_name' => $v['user']['nick_name'],
|
||||
'avatar' => $v['user']['avatar'],
|
||||
'timestamp' => $v['created_at'],
|
||||
'type' => $v['user_id'] === $this->userId? 'sent' : 'received',
|
||||
'user' => $v['user'],
|
||||
'to_user' => $v['to_user'],
|
||||
];
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function sendMessage($data, $toUserId, $chatRoomId, $replayId, $type = MessageTypeEnum::Text->value)
|
||||
{
|
||||
// $uids = [1,2,3];
|
||||
// $uidsC = [];
|
||||
@@ -36,12 +67,22 @@ class ImService extends BaseService
|
||||
// ds($uidsC);
|
||||
$data['message_type'] = MessageTypeEnum::from($type)->description();
|
||||
$this->gatewayClient->sendToUser(
|
||||
$this->userId === 1? 2: 1,
|
||||
$toUserId,
|
||||
$this->userId,
|
||||
$data['avatarColor'],
|
||||
$this->userInfo['nick_name'],
|
||||
'单聊'. $data['content'],
|
||||
$data['content'],
|
||||
);
|
||||
|
||||
MessageModel::create([
|
||||
'user_id' => $this->userId,
|
||||
'chat_room_id' => $chatRoomId,
|
||||
'to_user_id' => $toUserId,
|
||||
'replay_id' => $replayId,
|
||||
'type' => $type,
|
||||
'content' => $data['content'],
|
||||
'created_at' => time(),
|
||||
]);
|
||||
// $this->gatewayClient->broadcastMessage(
|
||||
// $this->userId,
|
||||
// $data['avatarColor'],
|
||||
|
||||
Reference in New Issue
Block a user