ubuntu 18.04
laravel 7.25
php 7.4
さくらvps
の環境でチャットを作ろうとしています。
デプロイも完了、404の大量発生も何とか自力で超えたのですが、最後にpusherと通信ができず困っています。
まず、チャットページを開くとwebsocketがちゃんと動いている?のかなと思ったら、ディベロッパーツールのコンソールを覗くと永遠にエラーを吐き出している模様。
エラーを調べると、CORSの問題?っぽいのですが、初めて聞いたので全く歯が立たなくなってしまいました。。。
また、当然以上のことからpusherと繋がっていないので、チャットのメッセージを送っても500番が返ってくるのでチャットの更新は起こりません。
また、チャットは下記のURLを参考にしています。
私にはまだ早かったようですが、締め切りもあるので是非動かしたいと思っています。
Laravel+Vueでリアルタイム・チャットをつくる
エラーは以下の画像のように永遠と流れています。(スピードはゆっくりですが)
Laravel 内から外部のAPI(今回はpusher)へ繋ぐときには,基本的にCORS問題は避けて通れないあたり前の手順でしょうか?
ローカルでは普通にチャットは動いていましたし、特に動いていたコードをいじってはいないです。(この問題の解決方法が分からなかったので、pusherのapi周りは少し触りましたが、今は戻しています)
こうなってしまってはもう復帰?は無理でしょうか。。。
何かお気づきがありましたら、コードもできる限りお見せするのでアドバイスを頂けると嬉しいです。
宜しくお願いします。
2020/10/5 午前
昨日全くデータが遅れなかったのに、今朝適当にコメントをチャット欄に打って送信したら、pusherへデータが送信できていた。
ログインユーザーのログインが外れていたので、ログインし直しただけしか変わったことはしていません。
謎です。。。
1.さくらのサーバー側で変更が効いていなかった(時間置いたら効いた??そんなことあります?以前も、時間をおいたら動いていたってことがありました。妄想偶然でしょうか。。。)
2.laravelのセッション系などが悪影響を及ぼしていた?
今こう考えています。
ちなみに、ディベロッパーツールのエラー群は変わらず同じ情報を流しております。
CORSのエラーについて今調べておりますが、こちら現在サクラより割り振られたipアドレスを使用しているからではないかと思っていますが、見当違いならすみません。
2020/10/5 午前2
違うミスをしてしまい、作り直した方が早いと思い
composer require pusher/pusher-php-server
でバージョン4.1をインストールしたところ、送信の通信(POST)がエラーを吐かなくなりました。
逆にGETが500番エラーを吐くので原因調査に乗り出します。
古いpusher/pusher-php-serverはやめておいた方が良いなというのが今のところの印象です。
2020/10/5 午前3
##動きました!!でも。。。そんなのアリ?!
どこまで動いているか確かめようと
\Log::debug('here!');
とかをcontroller内に書き込んでいました。
なぜか書き込むとpostもエラーなるなと思って問題を起こしているcontroller内部(GETするメソッド内などから)から先程のdebugメソッドをコメントアウトすると問題なく動作しました!
書いたままでもローカルでは動いていましたし、デバッグバーを現在も出しています。
なぜこのメソッドが原因なのでしょうか??
もしこれが本当の本当にエラーの原因であると、動作不良になった時に検証すればするほど沼にハマってしまいます。
お分かりになる方はいらっしゃいますか??