ThinkPHP框架整合环信即时通讯DEMO

来源:互联网 发布:台湾大学知乎 编辑:程序博客网 时间:2024/06/01 17:04

环信成立于2013年4月,是一家全通讯能力云服务提供商。产品包括全球最大的即时通讯云 PaaS 平台——环信即时通讯云.

最近在工作中遇到要整合环信即时通讯,通过在网上搜索没有搜到特别全的案例,故此自己一点一点翻阅开发文档进行开发,以此记录下来和广大博友分享。

由于项目保密,故此稍后讲述将以干净的ThinkPHP框架代码进行整合。


1、注册环信帐号

        要想使用环信即时通讯系统,首先你要注册一个环信帐号,在里面添加好自己的应用,获取环信后台生成的“ client_id、client_secret、org_name、app_name” 。已备稍后在整合开发中进行使用。

        关于如何注册环信帐号,如何添加自己的应用博主就不在这里一一讲述了,这不是本博文的重点。

2、下载环信的DEMO

1) 可以在本人的资源模块进行下载(包含ThinkPHP,已整合好);

2) 可以在环信的官网中进行下载;

3) 可以通过GitHub进行下载;Git地址:https://github.com/easemob/emchat-server-examples.git

3、整合第一步:将文件放入到框架中

        将下载到的文件解压得到 “ Easemob.class.php” 文件放入到ThinkPHP框架的核心库中。也就是 “\ThinkPHP\Library\Think ” 文件夹下。在 “ Easemob.class.php ” 添加命名空间。

//命名空间namespace Think;

4、整合第二步:在控制器引入Easemob类

我们要使用“ Easemob.class.php ” 文件就要在控制器中引入。

//将Easemob类引入到控制器//我们应该尽量避免使用require、require_oneuse Think\Easemob;

5、整合第三步:开始在控制器使用

将自己在注册成为环信即时通讯系统用户,添加自己的应用后得到的:“ client_id、client_secret、org_name、app_name” 拷贝下来。

<?phpnamespace Home\Controller;use Think\Controller;use Think\Easemob;class IndexController extends Controller{    public function index()    {        $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>', 'utf-8');    }    /**     * 在环信即时通讯系统注册为IM用户     * @param $username 用户名     * @param $password 登录密码     * @param $nickname 昵称     */    public function registerImUser($username, $password, $nickname)    {        $options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx';        $options['client_secret'] = '###########################';        $options['org_name'] = '*******';        $options['app_name'] = '@@@@@@@';        $e = new Easemob($options);        //传入用户名和登录密码参数注册为IM用户        $result_u = $e->createUser($username, $password);        //传入注册用户名和昵称,修改用户昵称        $result_n = $e->editNickname($username, $nickname);        //return $result_u;        return $result_n;    }    /**     * 用于在环信即时通讯系统创建聊天群     * @param $groupName string 聊天群组名——不能使用汉字     * @param $desc string 聊天群组描述     * @param $ower string 聊天群主名——也就是在环信后台注册的IM用户名     * @param $members array 聊天群组员——也就是在环信后台注册的IM用户名     */    public function createGroup($groupName, $desc, $ower, $members)    {        <pre name="code" class="php"><span style="white-space:pre"></span>$options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx';        $options['client_secret'] = '###########################';        $options['org_name'] = '*******';        $options['app_name'] = '@@@@@@@';
$e = new Easemob($options); $param['groupname'] = $groupName; $param['desc'] = $desc; $param['public'] = true; $param['ower'] = $ower; $param['members'] = $members; return $e->createGroup($param); }}

这样我们就可以使用了。

6、多余的话

1)  里面写好的方法很多都在压缩包里,请大家下载查看,像创建单个用户、创建批量用户、重置用户密码、查看好友、查看黑名单、修改群组信息等等大概70个方法供大家使用;

2) 从上述代码我们可以看出,每次重新 “ new  Easemob($options) ” 的时候,我们总要先写四条:

//你的client_id值$options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx';//你的client_secret值$options['client_secret'] = '###########################';//你的org_name注册名$options['org_name'] = '*******';//你的应用名称app_name$options['app_name'] = '@@@@@@@';
这样看起来有点代码冗余,我们可以把这四个值直接写到 “ Easemob.class.php ” 类文件的构造函数中:
/**     * 初始化参数     *     * @param array $options     * @param $options ['client_id']     * @param $options ['client_secret']     * @param $options ['org_name']     * @param $options ['app_name']     */    public function __construct($options)    {        $this->client_id = isset ($options ['client_id']) ? $options ['client_id'] : 'xxxxxxxxxxxxxxxxxxxxxx';        $this->client_secret = isset ($options ['client_secret']) ? $options ['client_secret'] : '#####################';        $this->org_name = isset ($options ['org_name']) ? $options ['org_name'] : '********';        $this->app_name = isset ($options ['app_name']) ? $options ['app_name'] : '@@@@@@@@';        if (!empty ($this->org_name) && !empty ($this->app_name)) {            $this->url = 'https://a1.easemob.com/' . $this->org_name . '/' . $this->app_name . '/';        }    }

结语:编程真的是一件很美好的事。

1 0
原创粉丝点击