官网
教程
文档
官网文档
小程序集群与uniapp
小程序app接口教程
冰蓝世界版
阿赖耶识与随风版
网站首页
齐博X1教程专栏
文章列表
推荐
把内容评论改造成即时聊天
超级蜘蛛查
2024-02-28 16:33:16
198
把下面内容塞进内容详情页的模板,即可实现即时聊天功能。效果如下图所示  代码如下: ~~~ .layadmin-message-fluid{ padding:0;}.layui-col-md12{ background:#000; padding:10px; border-bottom:1px solid #eee;}.layadmin-message-fluid .layui-col-md12{ padding-bottom:0px;}.message-content .media-body{ padding-top:15px; border-top:1px solid #eee; margin-bottom:20px; margin-top:10px;}.message-content .isme{ border-top:1px solid #fdc545;}.chat_box{ border:1px solid #62b5c5;}/*上面的CSS样式及template.css文件不重要,完全可以删除的*//*聊天内容窗口定高,这里也是关键之处*/.content_box_wap{ height:200px; overflow-y:auto;}#show_list_content{ /*下面两行是关键地方,要倒过来排序*/ flex-direction: column-reverse; display: flex;} 发送 <script type="text/javascript">//将数据转化成自定义模板的格式,做模板一般要修改这里!!!function array2html(listdb){ var str=''; listdb.forEach((rs)=>{ if(rs.from_username){ //即时消息的情况 rs.icon=rs.from_icon; rs.username=rs.from_username; } var isme = rs.uid==myuid?'isme':'ishe'; //做模板,可以根据这个处理自己的头像是不是在右边显示 //做模板,只需要修改下面的代码即可.注意``这两个符号不能漏掉 str += ` <div class="media-body ${isme}"> <a href="/member.php/home/${rs.uid}.html" class="media-left" style="float: left;"> <img src="${rs.icon}" onerror="this.src='/public/static/images/noface.png'" height="46px" width="46px"> </a> <div class="pad-btm"> <p class="fontColor"><a href="/member.php/home/${rs.uid}.html">${rs.username}</a></p> <p class="min-font">${rs.create_time}</p> </div> <p class="message-text">${rs.content}</p> </div> `; }); return str;}var sending_msg = false;function post_cmt_msg(){ var contents = $('#post_cnt').val(); if(contents==''){ layer.alert("内容不能为空!"); return false; }else if(sending_msg){ layer.alert("请不要重复发送!"); return false; } sending_msg = true; //消息入库处理,如果不想消息入库的话,就把下面的删除,直接使用 sending_msg=false;$('#post_cnt').val('');WS.send({type:'qun_sync_msg',data:{push_id:0,content:contents,}}); $.post("{:purl('comment/api/add')}?sysid={:M('id')}&aid={$id}",{content:contents},function(res){ sending_msg = false; if(res.code==0){ //发布成功 //通知同步显示最新消息 WS.send({ type:'qun_sync_msg', //固定标志 data:{ push_id:res.data.id, content:contents, } }); $('#post_cnt').val(''); }else{ layer.msg('评论发表失败:'+res.msg); } });}//加载数据库的信息function load_data_list(){ if(msg_page<1){ layer.alert("没有了!"); return false; } layer.msg('内容加载中...',{time:1000}); //rows=10即代表每页显示10条消息 $.get("{:purl('comment/api/getlist')}?sysid={:M('id')}&aid={$id}&rows=10&page="+msg_page,function(res){ if(res.code==0){ $("#show_list_content .showmore-btn").remove(); var oh = $("#show_list_content").height(); $("#show_list_content").append(array2html(res.data)+'<div class="showmore-btn" onclick="load_data_list()" style="text-align:center;color:blue;">点击加载更多</div>'); if(msg_page==1){ $(".content_box_wap").animate({scrollTop:5000},1000); }else{ var h = $("#show_list_content").height()-oh-$(".content_box_wap").height(); $(".content_box_wap").animate({scrollTop:h},1000); } msg_page++; }else if(msg_page>1){ msg_page = -1; layer.msg("没有了!"); } });}var msg_page = 1; //默认显示第一页的数据var myuid = "{$userdb.uid}"; //当前用户的登录UID$(function(){ load_data_list(); //默认显示第一页的评论消息 setTimeout(function(){ //与websock服务器建立长连接 WS.link({ uid:-( {$id} + 1000000 ), //1000000仅仅是一个标志而已,避免跟圈子ID冲突,这样数值就会大于圈子 userinfo:{username:'{$userdb.username}',icon:'{$userdb.icon}'}, quninfo:{uid:0}, my_uid:myuid, ws_url:"{:fun('Gatewayclient@client_url')}" }); WS.onmsg(function(obj){},'layui'); //把系统的客服消息功能注销掉,避免冲突 },500); //延时执行是为了避免跟客服消息冲突. });//同步接收消息WS.onmsg(function(obj){ if(obj.type=="qun_sync_msg"){ //同步显示最新发表的信息 $("#show_list_content").prepend(array2html(obj.data)); $(".content_box_wap").animate({scrollTop:5000},500); //新消息自动滚动到最底部 }},'default');</script> ~~~
本文链接:https://x1.wanxiangsucai.com/read/147.html
上一篇:
下一篇:齐博x1云标签插件-一件提取关键词无法使用的解决办法
相关文章推荐
1.
通用评论的调取及删除与点赞接口
2.
如何调用评论
3.
直播神器聊天小插件
4.
任何页面加入即时聊天功能
5.
论坛的内容调取与修改发布点赞接口
6.
列表及内容页模板的优先级顺序
7.
通用内容数据调取及发布与点赞相关接口
8.
如何限制圈子内搜索内容
9.
主题内容如何群发给圈子成员
10.
如果把万能表单直接插入到内容中去
齐博X1教程专栏最新文章
1.
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
2.
齐博x1云标签插件-一件提取关键词无法使用的解决办法..
3.
关于thinkphp5
4.
齐博X1更新记录
5.
解决Web部署 svg/woff/woff2字体 404错误
6.
云市场注意事项
7.
如何调取当前模块ID
8.
URL伪静态设置
9.
QQ登录接口配置
10.
邮箱接口设置之QQ企业邮箱
齐博X1教程专栏文章推荐
1.
支付插件卸载后无法重新安装的解决办法
2.
异步加载标签数据
3.
小程序与公众号长期永久订阅消息的申请方法
4.
主题内容如何群发给圈子成员
5.
V系列如果发现被黑的排查方法附修复办法
6.
当前URL标签
7.
单张图片标签的使用
8.
调用栏目分类的字段
9.
群聊模块二次开发
10.
URL美化伪静态设置方法
建站工具推荐
您可能感兴趣的文章
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
齐博x1云标签插件-一件提取关键词无法使用的解决办法
关于thinkphp5
齐博X1更新记录
解决Web部署 svg/woff/woff2字体 404错误
云市场注意事项
如何调取当前模块ID
URL伪静态设置
QQ登录接口配置
邮箱接口设置之QQ企业邮箱