kmizta / m5stack-co2-monitor

33 stars 7 forks source link

証明書が無い場合新しいバージョンのライブラリでコンパイルするとpushの通信で失敗するみたいです。 #3

Closed sakana74 closed 3 years ago

sakana74 commented 3 years ago

この手のオープンソース関係に投稿するのは慣れていないので、場違いであったらごめんなさい push通知が送られていなくておかしいなと思って追いかけていたところ secureClient.setInsecure(); が無いと新しいライブラリではsecureClient.connectが失敗するみたいです。 同じような問題にぶつかっていた方が居ましたので参考のリンクも貼っておきます。 https://www.motohasi.net/blog/?p=3885

sakana74 commented 3 years ago

あ、コンパイルが失敗するのではなく、通信が失敗です。

kmizta commented 3 years ago

@sakana74 さん、コメントありがとうございます。 こちらの環境では使用している各ライブラリをアップデートしても再現しないのですが、使用されている環境やライブラリのバージョン等教えていただけますか?

sakana74 commented 3 years ago

了解です。 手元の情報取り敢えず判る限りに羅列します。 環境としては Visual Studio code 1.54.2 PlatformIO Core 5.1.1 Home 3.3.4 M5Stack 0.3.1
WiFiClientSecure by Evandro Luis Copercini 1.0

あとはM5Stack Basicは在庫切れになっていたので、M5Stack Grayを利用していることでしょうか

気になってWiFiClientSecure のバージョン調べてみましたが1.0でした。何か他にも要因あるのでしょうか...... https://github.com/esp8266/Arduino/issues/4826 ココでもsetInsecure使え言われているみたい。 https://intellectualcuriosity.hatenablog.com/entry/2021/03/17/180935 最近なのでしょうか......この記事の日付は3/17ですし

sakana74 commented 3 years ago

https://github.com/esp8266/Arduino/issues/5277 これですかね....

kmizta commented 3 years ago

@sakana74 さん、情報ありがとうございます。 platformioのPlaform updatesからEspressif 21のバージョンを2.1.0から最新の3,1,1に更新したところ、WifiClientSecureのソースコードも更新され、現象が再現しました。 いただいた情報をもとに修正を試みます。

kmizta commented 3 years ago

ひとまず、setInsecure()をconnect()前に行うことで問題を回避し、正常にPushbulletへ通知できることを確認しました。 v3.1をPushしましたので、そちらをお使いください。 コメントありがとうございました。