ThinkPHP框架整合环信即时通讯DEMO
環信成立于2013年4月,是一家全通訊能力云服務提供商。產品包括全球最大的即時通訊云 PaaS 平臺——環信即時通訊云.
最近在工作中遇到要整合環信即時通訊,通過在網上搜索沒有搜到特別全的案例,故此自己一點一點翻閱開發文檔進行開發,以此記錄下來和廣大博友分享。
由于項目保密,故此稍后講述將以干凈的ThinkPHP框架代碼進行整合。
? ? ? ? 要想使用環信即時通訊系統,首先你要注冊一個環信帳號,在里面添加好自己的應用,獲取環信后臺生成的“?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_one use 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 . '/';}}結語:編程真的是一件很美好的事。
總結
以上是生活随笔為你收集整理的ThinkPHP框架整合环信即时通讯DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android studio 启动模拟器
- 下一篇: BeanShell遍历JSON双重嵌入数