打造微信一样的聊天功能:tp5+workerman实现在线聊天客服功能(二)

今天要分享的内容有两块,

1、保存聊天记录到数据库(形成持久化);

2、初始化打开聊天界面,显示最近的聊天记录。

等不及了,那么开始吧……

一、建立数据库表

聊天记录表:

用户名表:

二、在《打造微信一样的聊天功能:tp5+workerman实现在线聊天客服功能(一)》代码的基础上修改代码:

1、在events.php增加或修改(红框中的代码):

 2、视图层index增加(红框中的代码):

get_message_list(fid,tid)获取聊天记录函数代码如下 :

//初始化上一次的聊天记录
function  get_message_list(fid,tid)
{
   $.post('{:url("index/get_message_list")}',
    {fid:fid,tid,tid},
    function(data){
      $.each(data,function(i,v){
         console.log(v);
         if(v.fid==fid){
            $("#message").append('<p style="float:left"><img src="http://192.168.1.103/tp/public/static/'+fid+'.png" style="border-radius:50%">'+fid+'SAY:'+v.content+'</p><div style="clear: both;"></div>');
         }else
         {
              $("#message").append('<p style="float:right">'+v.content+':SAY'+tid+'<img src="http://192.168.1.103/tp/public/static/'+tid+'.png" style="border-radius:50%"></p><div style="clear: both;"></div>');
         }
        })

   })

}

saved(message) 保存聊天内容函数代码如下:

//保存每一次聊天内容
function saved(mes)
{
   $.post('{:url("index/saved")}',
    mes,
    function(data){

   })

}

3、控制器index增加方法:

//保存聊天内容方法
public function saved(){
  if(request()->isAjax()){
  	$data=input('post.');
  	$adddata=[
  		'fid'=>$data['fid'],
  		'tid'=>$data['tid'],
  		'content'=>$data['data'],
  		'isread'=>$data['isread'],
  		'addtime'=>$data['time']
  ];
  $id=Db::name('chat')->insertGetId($adddata);
  echo $id;
  }
}

//聊天内容记录方法
public function get_message_list(){
  if(request()->isAjax()){
$message=Db::name('chat')
->where("(fid=:fid and tid=:tid) or (fid=:tid1 and tid=:fid1)",['fid'=>input('fid'),'tid'=>input('tid'),'fid1'=>input('fid'),'tid1'=>input('tid')])
->select();
return json($message);
  }
}

至此,聊天内容持久化,初始化聊天记录功能完成…………

期待,下次再见…………

猜你喜欢

转载自blog.csdn.net/qq_39418742/article/details/102235623