打造微信一样的聊天功能: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);
  }
}

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

期待,下次再见…………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值