前言
說下場景,當后台將號碼池的號碼分配給指定客服的時候,需要給指定的客戶推送一條消息告訴該客戶,通訊錄有新增數據。
步驟
下載
https://www.workerman.net/web-sender
進入workerman的官網下載消息推送的包,下載后解壓整體移入現有框架,我移入到了vendor下,測試下能不能跑,可以跑再進行下面的改造!
調試按着網站上給的即可
https://www.workerman.net/web-sender

前端
-
引入相應的JS文件
//socket.io的js <script src='https://cdn.bootcss.com/socket.io/2.0.3/socket.io.js'></script> <script src='//cdn.bootcss.com/jquery/1.11.3/jquery.js'></script> //消息提示條,在下載包里有 <script src='/notify.js'></script>
-
推送
推送給個人 http://(域名|IP):2121/?type=publish&to=<用戶id>&content=<推送內容> 推送給所有人 http://(域名|IP):2121/?type=publish&content=<推送內容>
-
1.引入js文件 2.連接服務器端 var socket = io('http://'+document.domain+':2120'); 3.連接后台 socket.on('connect', function(){ socket.emit('login', uid); }); 4.接收后台推送消息並且使用notify推送到界面上 socket.on('new_msg', function(msg){ $('#content').html('收到消息:'+msg); $('.notification.sticky').notify(); });
后端
因為是在綁定關系的時候去推送消息,所以只要在綁定關系成功后利用自己封裝的請求方法去發出請求。
封裝的請求方法
function https_request($url,$data) { // 初始化 $ch = curl_init(); // 設置 curl_setopt($ch, CURLOPT_URL, $url); // 檢查ssl證書 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 從檢查本地證書檢查是否ssl加密 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $url); if (!empty($data) ) { curl_setopt($ch, CURLOPT_POST, 1);// 開啟post curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// 發送post $data } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); // close curl res return $res; }
請求代碼
這個網址肯定是要活的在后台配置,所以從配置文件中讀取即可!
$url = config('url.fornt_end_url'); $info = [ 'type'=>"publish", 'to'=>$newData['uid'], 'content'=>"您有一位新的客戶{$newData['nickname']},請注意查看通訊錄" ]; $re = https_request($url, $info);
效果圖
因為前端是APP,現在代碼還沒看到,只能在后端界面上先測下

