|
|
@@ -2,7 +2,9 @@
|
|
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
|
|
-use App\Services\Common\ChatMessageService;
|
|
|
+use App\Services\ChatMessageService;
|
|
|
+use App\Services\Common\MemberService;
|
|
|
+use App\Services\RedisService;
|
|
|
use Illuminate\Console\Command;
|
|
|
|
|
|
class Socket extends Command
|
|
|
@@ -109,9 +111,40 @@ class Socket extends Command
|
|
|
}
|
|
|
break;
|
|
|
default: // 默认聊天
|
|
|
- if(!ChatMessageService::make()->saveData($frame->fd, $data)){
|
|
|
+ $toUid = isset($data['to_uid'])? intval($data['to_uid']) : 0;
|
|
|
+ $fromUid = isset($data['from_uid'])? intval($data['from_uid']) : 0;
|
|
|
+ $messageType = isset($data['message_type'])? $data['message_type'] : 1;
|
|
|
+ if($toUid<=0 || $fromUid<=0){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!ChatMessageService::make()->saveData($data)){
|
|
|
+ $this->ws->push($frame->fd, lang(ChatMessageService::make()->getError()));
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
+ $toBindData = RedisService::get("chats:bind:{$toUid}");
|
|
|
+ $toFd = isset($toBindData['fd'])? $toBindData['fd'] : 0;
|
|
|
+ if($toBindData && $toFd){
|
|
|
+ $toInfo = MemberService::make()->getInfo($toUid);
|
|
|
+ $fromInfo = MemberService::make()->getInfo($fromUid);
|
|
|
+ $message = isset($data['message'])? $data['message'] : '';
|
|
|
+ $data = [
|
|
|
+ 'type'=> isset($data['type'])? $data['type'] : 1,
|
|
|
+ 'message_type'=> $messageType,
|
|
|
+ 'from_uid'=> $fromUid,
|
|
|
+ 'from_userName'=> isset($fromInfo['username'])? $fromInfo['username'] : '',
|
|
|
+ 'to_uid'=> isset($data['to_uid'])? $data['to_uid'] : 0,
|
|
|
+ 'to_userName'=> isset($toInfo['username'])? $toInfo['username'] : '',
|
|
|
+ 'chat_key'=> getChatKey($fromUid, $toUid),
|
|
|
+ 'message'=> $messageType==2&&$message? get_image_url($message) : $message,
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'time_text'=> date('m-d H:i'),
|
|
|
+ 'is_read'=> 1,
|
|
|
+ 'status'=> 1,
|
|
|
+ ];
|
|
|
+ $this->ws->push($toFd, json_encode($data, 256));
|
|
|
}
|
|
|
+
|
|
|
break;
|
|
|
|
|
|
}
|