Crear una función de chat similar a WeChat: tp5 + workerman realiza la función de servicio al cliente de chat en línea (2)

Hay dos piezas de contenido para compartir hoy,

1. Guarde los registros de chat en la base de datos (persistencia del formulario);

2. Abra inicialmente la interfaz de chat y muestre el historial de chat reciente.

 

No puedo esperar, así que comencemos ...

Uno, crea una tabla de base de datos

Tabla de historial de chat:

Tabla de nombres de usuario:

2. Modifique el código según el código de "Crear función de chat similar a WeChat: tp5 + workerman realiza la función de servicio al cliente de chat en línea (1)" :

1. Agregue o modifique en events.php (código en cuadro rojo):

 2. Se aumenta el índice de la capa de vista (código en el cuadro rojo):

El código de get_message_list (fid, tid) para obtener la función de historial de chat es el siguiente:

//初始化上一次的聊天记录
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>');
         }
        })

   })

}

guardado (mensaje) El código de función para guardar el contenido del chat es el siguiente:

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

   })

}

3. Cómo aumentar el índice del controlador:

//保存聊天内容方法
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);
  }
}

En este punto, el contenido del chat persiste y la función de registro del chat se inicializa ...

Espero verte la próxima vez ............

Supongo que te gusta

Origin blog.csdn.net/qq_39418742/article/details/102235623
Recomendado
Clasificación