头像

Thinkphp3.2即时通讯在线聊天【原创

来源:http://www.maoteacher.com/php/2597.html 18***38 2017-07-31 18:12浏览(8702) 收藏

Thinkphp3.2.3仿网页版微信在线聊天,看聊天DEMO的时候可以使用两个不同的浏览器分别打开两个用户的链接,输入文字内容开始聊天
Thinkphp3.2即时通讯在线聊天
分类:PHP > Thinkphp 难易:中级

程序员,你不是一个人;网站开发QQ群:35248186,在线充值,或联系QQ2589223951直接充值

查看演示 下载资源: 51 下载资源 下载积分: 300 积分

一、注册融云官网http://www.rongcloud.cn;创建应用;获得App Key和App Secret;

二、设置配置项 /Application/Common/Conf/config.php

'RONG_IS_DEV'            => true,//是否是在开发中
   'RONG_DEV_APP_KEY'       => '8luwapkvu3xwl', //融云开发环境下的key    仅供测试使用
   'RONG_DEV_APP_SECRET'    => '1Aw1D7F6Td25', //融云开发环境下的SECRET  仅供测试使用
    'RONG_PRO_APP_KEY'       => '', //融云生产环境下的key
    'RONG_PRO_APP_SECRET'    => '', //融云生产环境下的SECRET

三:集成php部分sdk

引入融云sdk:/ThinkPHP/Library/Org/Xb/RongCloud.class.php

公共函数:/Application/Common/Common/function.php

/**
 * 根据配置项获取对应的key和secret
 * @return array key和secret
 */
function get_rong_key_secret(){
    // 判断是需要开发环境还是生产环境的key
    if (C('RONG_IS_DEV')) {
        $key=C('RONG_DEV_APP_KEY');
        $secret=C('RONG_DEV_APP_SECRET');
    }else{
        $key=C('RONG_PRO_APP_KEY');
        $secret=C('RONG_PRO_APP_SECRET');
    }
    $data=array(
        'key'=>$key,
        'secret'=>$secret
        );
    return $data;
}
/**
 * 获取融云token
 * @param  integer $uid 用户id
 * @return integer      token
 */
function get_rongcloud_token($uid){
    // 从数据库中获取token
    $token=D('OauthUser')->getToken($uid,1);
    // 如果有token就返回
    if ($token) {
        return $token;
    }
    // 获取用户昵称和头像
    $user_data=M('Users')->field('username,avatar')->getById($uid);
    // 用户不存在
    if (empty($user_data)) {
        return false;
    }
    // 获取头像url格式
    $avatar=get_url($user_data['avatar']);
    // 获取key和secret
    $key_secret=get_rong_key_secret();
    // 实例化融云
    $rong_cloud=new \Org\Xb\RongCloud($key_secret['key'],$key_secret['secret']);
    // 获取token
    $token_json=$rong_cloud->getToken($uid,$user_data['username'],$avatar);
    $token_array=json_decode($token_json,true);
    // 获取token失败
    if ($token_array['code']!=200) {
        return false;
    }
    $token=$token_array['token'];
    $data=array(
        'uid'=>$uid,
        'type'=>1,
        'nickname'=>$user_data['username'],
        'head_img'=>$avatar,
        'access_token'=>$token
        );
    // 插入数据库
    $result=D('OauthUser')->addData($data);
    if ($result) {
        return $token;
    }else{
        return false;
    }
}
/**
 * 更新融云头像
 * @param  integer $uid 用户id
 * @return boolear      操作是否成功
 */
function refresh_rongcloud_token($uid){
    // 获取用户昵称和头像
    $user_data=M('Users')->field('username,avatar')->getById($uid);
    // 用户不存在
    if (empty($user_data)) {
        return false;
    }
    $avatar=get_url($user_data['avatar']);
    // 获取key和secret
    $key_secret=get_rong_key_secret();
    // 实例化融云
    $rong_cloud=new \Org\Xb\RongCloud($key_secret['key'],$key_secret['secret']);
    // 更新融云用户头像
    $result_json=$rong_cloud->userRefresh($uid,$user_data['username'],$avatar);
    $result_array=json_decode($result_json,true);
    if ($result_array['code']==200) {
        return true;
    }else{
        return false;
    }
}

写一个控制器用来获取token、好友列表的头像和用户名:/Application/Api/Controller/RongController.class.php

/**
     * 获取token
     */
    public function get_token(){
        // 获取用户id
        $uid=get_uid();
        // 获取token
        $token=get_rongcloud_token($uid);
        $data=array(
            'token'=>$token
            );
        ajax_return($data,'获取成功',0);
    }

    /**
     * 传递一个、或者多个用户id
     * 获取用户头像用户名;用来组合成好友列表
     */
    public function get_user_info(){
        $uids=I('post.uids');
        // 组合where数组条件
        $map=array(
            'id'=>array('in',$uids)
            );
        $data=M('Users')
            ->field('id,username,avatar')
            ->where($map)
            ->select();
        ajax_return($data,'获取用户数据成功',0);
    }

四:集成前端部分 html要引入融云js的sdk;

<script src="http://cdn.ronghub.com/RongIMLib-2.0.6.beta.min.js"></script>
<script src="http://cdn.ronghub.com/RongEmoji-2.0.2.beta.min.js"></script>
然后下面是我痛苦的研究了融云的sdk后简化了的使用方法;
/Public/statics/rongcloud/js/main.js
然后配置html即可;
/tpl/Home/Index/user1.html
/tpl/Home/Index/user2.html
最终的效果是这样的:

本文来源:https://baijunyao.com/article/72

标签: 聊天通讯
声明:本文为原创文章,如需转载,请注明来源sucaihuo.com并保留原文链接:http://www.maoteacher.com/php/2597.html
最新交易
评论46
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 2589223951

  • 头像 45楼
    12-04 12:05
    u_***10
    不错学习学习,正好想看看即时通讯怎么弄
  • 头像 44楼
    07-14 09:52
    u_***00
    感谢分享,正在研究
  • 头像 43楼
    04-18 07:46
    一***钱
    正好找这个即使聊天的工具学习,这个很不错!
  • 头像 42楼
    03-31 08:19
    yu***t赫
    好强大的感觉素材火 很犀利,,功能挺强大
  • 头像 41楼
    03-21 11:29
    流***影
    以前用过安卓的融云sdk,现在刚好有需求要用到php上,很强大。
  • 头像 40楼
    02-05 08:52
    缘***分
    感觉自己基础还不够,不敢尝试这个,好强大的感觉素材火 很犀利
  • 头像 39楼
    01-17 16:41
    小***荨
    感觉自己基础还不够,不敢尝试这个,好强大的感觉
  • 头像 38楼
    01-09 08:47
    墨***。
    值得下载查看~~已收~~ 素材火很犀利
  • 头像 37楼
    01-04 17:02
    十年***16
    素材火 很犀利
  • 头像 36楼
    01-03 08:07
    国***德
    一直是我学习的
1 2
腾讯分分彩 www.657945.com-福利快乐彩-| www.983046.com-上海体育彩票中心| www.80ot.com-恶搞彩票中奖图片| www.3421.cm-江北好彩酒楼| www.588317.com-七乐彩怎么看中奖| www.764911.com-送28彩金的彩票| www.55804.com-快三现在哪还能买| www.023656.com-七星彩购买截止时间| www.121580.com-网络彩票输了20万| www.232305.com-湖北快三走势图连线| www.3aj.com-福彩时时乐开奖官网| www.557506.com-小班户外游戏彩虹伞| www.652513.com-彩票两个数字| www.782223.com-如何做彩票数据分析| www.888885.com-黑彩彩票机器| www.961869.com-三彩服饰官网| www.cai4343.com上海福彩时时乐| www.lr61.com-大中华彩票靠谱吗| www.233078.com-竞彩足球app推荐| www.365406.cc-彩票中奖方法| www.788267.com-今晚足彩14场分析| www.908752.com-福利彩票玩法说明| 9号彩票www.80767g.com| www.490473.com-七星彩三字定位包法| www.1080.xyz-天天快三群-| www.63fl.com-彩票预测平台合法吗| www.ue15.com-福彩直播开奖现场| www.39cc.com-吉林快三几号停| www.1953.vip-合乐彩票平台合法吗| www.7432.pw-上海体彩站转让信息| www.305528.com-甘肃快3开奖彩彩| www.np34.com-3d福彩选号神器| www.00094.com-乐58彩票手机版| www.379954.com-彩票平台怎么运营| www.090539.com-各省体彩店佣金| www.9364.cc-7k彩票网站-| www.508026.com-唐龙彩票-| www.999878.com-中国福利彩票燕赵| www.43iv.com-彩色沥青道路做法| www.0768.in-三分钟快三单双预测| www.017785.com-怎样注册中博彩票| www.410910.com-金华体彩中心| www.222149.com-3d彩票买法-| www.344278.com-九资料彩票网| www.488297.com-必发彩票网下载| www.580580.com-彩票吉林省中奖情况| www.682001.com-竞彩微信群-| www.829137.com-双色球预测牛彩专区| www.913850.com-福彩双色球领奖期限| www.981929.com-世界彩票最大奖排行| www.lt84.com-七星彩微彩论坛| www.83827.cc-七星彩百位杀号定胆| www.712408.com-东北娶媳妇彩礼| www.793976.com-体彩直播频道| www.875857.com-彩票走势图技巧| www.cai889.com-新快三是哪里的| www.425368.com-竞彩官电脑版下载| www.986319.com-三地彩吧走势图| www.e11.space-彩民网站-| www.01895.com-人人中彩下载| www.715307.com-彩神三是真的吗| www.61769.com-国外做彩票客服电话| www.946029.com-9彩网址-| www.qx2.com-彩43app-| www.f15.online-福彩快三怎样选号| www.219354.com-福建体育彩票官方网| www.838413.com-竞彩大小盘-| www.953476.com-足彩大小球规则| www.f51.org-马彩票-| www.zr58.com-双色球彩票规则| www.2237.pw-剑三新年好彩头| www.619.website3号彩票旧版首页| www.677777.cc-体彩三码组六遗漏| www.274890.com-也买彩app下载| www.931323.com-手机怎么买福利彩| 大赢家彩票www.5086n.com| www.178388.com-国家推荐彩票软件| www.336619.com-9万彩票官网| www.ag1.com-福彩3d贴吧百度| www.380879.com-好彩学院双色球| www.120389.com-保时捷娱乐彩票注册| www.213810.com-彩神1软件下载| www.tx34.com-竞彩足球8串1规则| www.0070.site-美国有高频彩票吗| www.908038.com-网上彩票的骗局揭秘| www.989328.com-彩店818怎么下载| www.02pw.cc-世界杯足球彩会| www.88my.com-福彩大湖字谜| www.284265.com-快乐彩开奖号码预测| www.677288.com-彩色包装袋简单| www.113061.com-体彩助手电脑版下载| www.930702.com-买彩票就用一个公式| 9928彩票www.9928i.com| www.216396.com-7星彩玩法开奖说明| www.343238.com-乐彩网三d玄机图| www.683509.com-体彩app怎么用| www.18058.com-有什么彩票是三位数| www.714737.com-人工彩票计划网| www.852901.com-彩宝cb8+com| www.979122.com-好彩柠檬香烟价格| www.jn15.com-快三输了报警| www.87is.com-3号彩票靠谱吗| www.9985.loan-与酷彩吧相同的软件| www.1692.org-彩票5950-| www.02380.com-易彩会员注册| www.138504.com-鸿彩app报警| www.050704.com-黑彩代理能赚多少钱| www.253666.com-北京福彩官网打不开| www.89gk.com-博彩app合法吗| www.062658.com-大发彩票是怎么赚钱| www.700040.com-五分时时彩玩法说明| www.792996.com-安阳中一亿彩票| www.867182.com-十大黑彩平台排行榜| www.919908.com-go彩彩种-| www.969108.com-福彩公益金用途| 8号彩票www.60108x.com| www.6163.cn-彩票世界官网| www.158662.com-亚博彩票平台| www.840540.com-足彩如何看赔率| www.4549.cc-凤凰彩票怎么做代理| www.40318.com-彩票破了可以兑奖| www.97881.cc-皇家时时彩安卓| www.083050.com-省份快三网站| www.167529.com-快三玩法规则及奖金| www.80796.com-彩票玩法技巧绝招| www.040874.com-网彩代理-| www.119800.com-希腊10分彩结果| www.186542.com-福利彩江苏快三下载| www.258617.com-体育彩票足球竞彩网| www.337779.com-青海中奖彩票| www.440119.com-镇江中彩票-| www.538120.com-99福彩怎么样| www.609252.com-七星彩19年43开| www.703686.com-燕赵福彩官网首页网| www.779911.com-彩票店在什么位置| www.863687.com-qq上说彩票挣钱| www.1825.com-代理彩票网站做链接| www.8176.cc-重庆时时彩2期必中| www.25616.com-众彩网远程专家预测| www.68775.com-彩票怎么选择号码| www.006914.cc-彩票开将查询| www.069948.com-甘肃福彩监控app| www.128998.com-体育彩票图谜总汇| www.223037.com-3d彩票走势图跨度| www.399555.com-彩票撕坏了能兑奖不| www.500177.com-078彩票线路检测| www.568511.com-洛阳市七彩酒店| www.650450.com-时时彩代理刷量技巧| www.731746.com-彩钢瓦围挡材质图片| www.811359.com-彩带-| www.873780.com-手机彩35-| www.946668.cc-福彩东方6十1预测| www.23hb.com-123ls天下彩| www.9063.loan-实时彩规律-| www.259903.com-体育彩票规则介绍| www.106736.com-彩票指点-| www.381428.com-足彩结果查询任九| www.qv.com-快三客是什么| www.982819.com-如意彩票下载安装| www.gz84.com-彩票666-| www.040281.com-瑞彩网能赚钱吗| www.219068.com-春秋彩票电脑版登录| www.386566.cc-3d杀码牛彩总汇| www.cp3988.com-吉林快三计划软件|