久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Thinkphp結合AJAX長輪詢實現PC與APP推送詳解

這篇文章主要給大家介紹了關于Thinkphp結合AJAX長輪詢實現PC與APP推送的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面

前言

本文主要給大家介紹的關于Thinkphp結合AJAX長輪詢實現PC與APP推送的相關內容,分享出來供大家參考學習,話不多說,來一起看看詳細的介紹。

實現邏輯

某個操作(比如新建一條公告)后,觸發同時推送消息給APP或是移動WEB的所有用戶或指定用戶。

不論性能,總還是有人會用到吧,實現如下(基于Thinkphp5消息推送):

PHP長輪詢

/*
  * long輪詢 API查詢接口
  */
 public function id_log()
 {
  if (request()->isPost()) {
   $id = $this->param['id'];
 
   set_time_limit(0);
   $id_log = Db::name('table')->alias('c')
    ->join('table cc', 'c.youname=cc.youname', 'left')
    ->join('table a', 'cc.youname =a.youname ', 'left')
    ->join('table u', 'c.youname =u.youname ', 'left')
    ->field('')
    ->where('', $id)
    ->order('log_time desc')
    ->limit(1)
    ->select();
 
   while (true) {
    if ($id_log) {
     $id_log_set = Db::name('table2')
      ->where('', $id)
      ->limit(1)
      ->setField('log_flag', '1');
     $this->response($id_log);
    }
    $this->wrong(404100);
    usleep(2000);
   }
 
  };
 }

換上你自己的表和相關的關聯字段。

推送消息創建方法

/**
 * 創建消息日志 觸發操作方法
 * @param string $log_content 日志內容
 * @param string $log_type 日志類型
 * @param int $log_c_id A用戶ID
 * @param string $log_user B用戶ID
 * @param string $log_admin PC
 * @param string $log_status
 * @return array
 */
function createLog($log_c_id, $log_type, $log_content, $log_admin, $log_user,$log_status)
{
 $data = [
  'log_c_id' => $log_c_id,
  'log_ip' => get_client_ip(),
  'log_admin' => $log_admin,
  'log_time' => date("Y-m-d H:i:s", time()),
  'log_url' => get_url(),
  'log_type' => $log_type,
  'log_content' => $log_content,
  'log_user' => $log_user,
  'log_status'=>$log_status
 ];
 $logadd = \think\Db::name('table')->insertGetId($data);
 return $logadd;
}

采用數據庫存消息并檢測和設計flag的形式推,不然離線消息就沒法推了,同樣的要修改成你自己的數據結構!

AJAX長輪詢

 var getting = {
  url: '{:url("youapi/url")}',
  dataType: 'json',
  success: function (res) {
   $(".count").text($('.llt').children().size());
   $(".llt").remove();
   if(res.length!=null){
    $.each(res, function (index, item) {
     $(".notification").append('<li class="llt" data-ccid="' + item.id + '"><a href="{:url(" rel="external nofollow" admin/carloan/edit")}?id='+item.log_c_id+'"><span class="label label-info"><i class="icon-bullhorn"></i></span><span class="message">' + item.u_name + ':' + item.log_content + '</span><span class="time"><span class="liveTime">' + item.log_time + '</span></span></a></li>');
    });
   }else{
 
   }
 
  }
 };
 //關鍵在這里,Ajax定時訪問服務端,不斷獲取數據 ,這里是1秒請求一次。
 window.setInterval(function () {
  $.ajax(getting)
 }, 1000);

總結

好了,大概就這樣,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了ThinkPHP實現轉換數據庫查詢結果數據到對應類型的方法,涉及thinkPHP模型類操作及針對源碼文件的相關修改方法,需要的朋友可以參考下
這篇文章主要介紹了thinkPHP中鉤子的使用方法,結合實例形式分析了thinkPHP鉤子的創建、添加、使用等相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要介紹了thinkphp5.0驗證類的簡單有效的使用方法,一起學習下。
本文主要講了thinkphp5.0版本中自定義驗證規則的使用方法和一些注意事項。
這篇文章主要介紹了thinkPHP基于反射實現鉤子的方法,結合實例形式分析了php基于系統自帶的ReflectionClass、ReflectionMethod 類與函數實現鉤子功能的相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了thinkPHP通用控制器實現方法,結合實例形式分析了thinkPHP針對數據庫的基本CURD操作方法的封裝實現技巧,需要的朋友可以參考下
主站蜘蛛池模板: 激情五月综合 | 国产一区二区麻豆 | 成人不卡 | 亚洲 欧美 综合 | 国产精品美女www爽爽爽 | 亚洲人在线 | 99精品国产一区二区三区 | 精品国产一区二区三区观看不卡 | 天天爽综合网 | 最近中文字幕第一页 | 久久免费视频观看 | 亚洲福利视频一区二区 | 成人国产精品免费观看视频 | 日韩成人在线播放 | 超碰在线播| 欧美精品一区二区三区在线播放 | 亚洲视频免费在线看 | 一区欧美 | 国产精品美女久久久久久免费 | 成人精品视频 | 精品视频一区二区 | 日韩精品一区二区三区在线观看 | 亚洲综合色视频在线观看 | 亚洲综合国产 | 2018国产大陆天天弄 | 伊人精品在线视频 | 国产网站在线免费观看 | 欧美a级成人淫片免费看 | 欧美亚洲网站 | 国产精品123区 | 老熟女毛片 | 亚洲精品在线观看视频 | 夜夜爽99久久国产综合精品女不卡 | 中文字幕在线精品 | 国产精品久久久久久久久久免费看 | 国产一区 | 国产99精品| 欧美激情精品久久久久 | 久久新| 精品久久久久一区二区国产 | 日韩欧美在线一区 |