PHPMQTT問題一二三

問題一:PHPMQTT做爲客戶端訂閱超過必定數量的主題後,系統就會報錯。git

思路:在網上查找緣由,失敗;app

           打開調試debug = true ; 結果proc方法中報錯: eof receivesocket

問題二:爲何讀不到socket呢?學習

MQTT爲TCP傳輸協議:遵循TCP三次握手協議,因此對MQTT有從新理了一次;測試

在MQTT羣裏諮詢,請教大佬;網站

一個技術大姐:(其實沒我大多少):讓我看看MQTT日誌報錯;spa

因而查看MQTT錯誤日誌同時報錯:debug

2018-07-27 18:43:18.412 [error] <0.3216.9>@emqttd_client:received:340 Client(39.104.65.187:37660): Parser failed for {function_clause,[{emqttd_parser,parse_utf,[<<6>>],[{file,"src/emqttd_parser.erl"},{line,206}]},{emqttd_parser,parse_topics,3,[{file,"src/emqttd_parser.erl"},{line,195}]},{emqttd_parser,parse_frame,3,[{file,"src/emqttd_parser.erl"},{line,147}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,319}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
2018-07-27 18:43:18.413 [error] <0.3216.9>@emqttd_client:received:341 Client(
39.104.65.187:37660): Error data: <<0,1,0,6,36,83,89,83,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,112,117,98,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,114,101,112,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,97,115,107,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,99,114,100,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,116,121,112,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,111,117,116,47,35,0>>調試

發現消息不對稱;日誌

因而再去網上查,也沒有查出緣由;

問題三:爲何會Function消息不對稱呢?

網上查了不少,包括國外的網站:git上說是time問題也有的說是mqtt QOS 設置爲1。都試過,不行

羣裏一個大哥回覆我了

說是我多是消息FUNCTION寫錯了

我試過的倒是對的。

而後我給他說,我用其餘客戶端沒問題。他對我說,多是那個庫的問題。讓我分批次訂閱;

問題四:怎麼去分批次訂閱

因而我根據不一樣的方法寫了兩個訂閱主題的方法。測試一下經過了。

 

通過此次錯誤,明白本身對消息堆棧的理解還不夠,之後要多學習他的源碼。多深刻理解。否則遇到問題要不是別人的點撥上,還會出錯。

 

感謝你們的幫助。

 

 

 

 

相關文章
相關標籤/搜索