官网
教程
文档
官网文档
小程序集群与uniapp
小程序app接口教程
冰蓝世界版
阿赖耶识与随风版
网站首页
齐博X1教程专栏
文章列表
推荐
任何页面加入即时聊天功能
超级蜘蛛查
2024-02-28 16:33:19
141
把下面的代码塞入到任何页面,即可在相应的页面实现即时聊天功能。下面的聊天内容并没有做入库处理。如果要入库的话,可以参考内容详情页的评论即时聊天改造JS,同时要简单的二开一下PHP即可实现。 下面代码中有个关键点 ` {$id?:($fid?:date('z'))}` 这个就是根据栏目或者是内容页区别不同的房间即聊天室. 代码如下 ~~~ .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;}function post_cmt_msg(){ var contents = $('#post_cnt').val(); if(contents==''){ layer.alert("内容不能为空!"); return false; } //通知同步显示最新消息 WS.send({ type:'qun_sync_msg', //固定标志 data:{ push_id:0, content:contents, } }); $('#post_cnt').val('');}var msg_page = 1; //默认显示第一页的数据var myuid = "{$userdb.uid}"; //当前用户的登录UID$(function(){ setTimeout(function(){ //与websock服务器建立长连接 WS.link({ uid:-( {$id?:($fid?:date('z'))} + 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/148.html
上一篇:
下一篇:齐博x1云标签插件-一件提取关键词无法使用的解决办法
相关文章推荐
1.
再强调严禁用记事本改任何文件
2.
直播神器聊天小插件
3.
把内容评论改造成即时聊天
4.
内容重新渲染,使聊天内容更炫
5.
JS网页快速接入支付功能
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.
模型字段内容页面调用小技巧
6.
隐藏index.php的方法
7.
直播要设置回调地址才能播放
8.
如何定义微信模板消息
9.
用异步加载,可加快网页打开速度
10.
如何配置圈子群聊直播APP
建站工具推荐
您可能感兴趣的文章
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
齐博x1云标签插件-一件提取关键词无法使用的解决办法
关于thinkphp5
齐博X1更新记录
解决Web部署 svg/woff/woff2字体 404错误
云市场注意事项
如何调取当前模块ID
URL伪静态设置
QQ登录接口配置
邮箱接口设置之QQ企业邮箱