<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                參考文檔: https://www.cloudmqtt.com/docs-php.html github下載 :?https://github.com/bluerhinos/phpMQTT CloudMQTT 概述:?https://www.cloudmqtt.com/docs.html CloudMQTT 除了有php的類庫,還有python,java.net等mqtt的類庫。 ### 一、phpMQTT詳解 客戶端發布: ~~~ //publish.php require("phpMQTT.php"); $host = "hostname"; //主機 $port = port; //端口 $username = "username"; //如果沒有則為空 $password = "password"; //如果沒有則為空 $message = "Hello CloudMQTT!"; //要發送的消息 //phpMQTT 有四個參數:主機,端口,客戶端id,證書。官網這里的案例沒寫證書,請參考phpMQTT類 //沒有證書的時候只能連接1883端口,不能連接8883端口。 $mqtt = new phpMQTT($host, $port, "ClientID".rand()); //連接 if ($mqtt->connect(true,NULL,$username,$password)) { $mqtt->publish("topic",$message, 0); $mqtt->close(); //關閉 }else{ echo "Fail or time out<br />"; } ~~~ ##### 服務端訂閱 ~~~ // 注意:訂閱請用窗口或者后臺去運行,不要再頁面運行。 require("phpMQTT.php"); ignore_user_abort(true); // 后臺運行 set_time_limit(0); // 取消腳本運行時間的超時上限 date_default_timezone_set('PRC'); //設置中國時區 $host = "hostname"; $port = port; $username = "username"; $password = "password"; //同樣這里少了證書參數 $mqtt = new phpMQTT($host, $port, "ClientID".rand()); if(!$mqtt->connect(true,NULL,$username,$password)){ exit(1); } //currently subscribed topics $topics['topic'] = array("qos"=>0, "function"=>"procmsg"); $mqtt->subscribe($topics,0); while($mqtt->proc()){ //無限去請求 } $mqtt->close(); function procmsg($topic,$msg){//輸出消息 echo "Msg Recieved: $msg"; } ~~~ **二、內存耗死問題** 場景:(訂閱)鏈接不上mqtt的時候,一下代碼會出錯: 文件名: phpMQTT.php? ![](https://img2018.cnblogs.com/blog/1103071/201812/1103071-20181213141456778-1168419955.png) 錯誤分析:鏈接不到mqtt的時候,$this->socket這個結果為false,while里面的一直會循環,$string的大小會耗死內存。所以加一個判斷,按如下代碼修改。 ~~~ if ($this->socket) { while (!feof($this->socket) && $togo>0) { $fread = fread($this->socket, $togo); $string .= $fread; $togo = $int - strlen($string); } } ~~~ 搞定
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看