質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

810閲覧

docker laravel pusher 500エラー

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/07/06 10:51

編集2020/07/06 14:22

docker laravel でpusherでリアルタイムチャットを実装をしています。
メッセージを送るときに500エラーが出て困っています。
たまにですが、メッセージを送れる時もあります。
三日間いろいろなサイトを見てやったのですが、解決しなかったため質問しました。

ChatController.phpのイベント発火時にエラーが起きてchat.jsのajaxの部分でエラーた起きているのだと思います。
質問内容
問題がpusherの設定が間違っているのかを聞きたいです。
できればどこが間違っているのかも
よろしくお願いします。

bootstrap.js

import Echo from 'laravel-echo'; window.Pusher = require('pusher-js'); window.Echo = new Echo({ broadcaster: 'pusher', key: process.env.MIX_PUSHER_APP_KEY, client: process.env.MIX_PUSHER_APP_ID, cluster: process.env.MIX_PUSHER_APP_CLUSTER, encrypted: false, forceTLS: true });

.env

PUSHER_APP_ID=******* PUSHER_APP_KEY=******************** PUSHER_APP_SECRET=******************* PUSHER_APP_CLUSTER=ap3 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

broadcasting.php

'default' => env('BROADCAST_DRIVER', 'pusher'), 'connections' => [ 'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'encrypted' => false, 'useTLS' => true, ], ], ],

ChatController.php

event(new ChatMessageRecieved($request->all()));

ChatMessageRecieved.php

namespace App\Events; use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; class ChatMessageRecieved implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; public $message; public $request; /** * Create a new event instance. * * @return void */ public function __construct($request) { $this->request = $request; } /** * イベントをブロードキャストすべき、チャンネルの取得 * * @return Channel|Channel[] */ public function broadcastOn() { return new Channel('my-channel'); } /** * ブロードキャストするデータを取得 * * @return array */ public function broadcastWith() { return [ 'message' => $this->request['message'], 'send' => $this->request['send'], 'recieve' => $this->request['recieve'], ]; } /** * イベントブロードキャスト名 * * @return string */ public function broadcastAs() { return 'my-event'; } }

chat.js

$(function() { $.ajaxSetup({ headers : { 'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content'), }}); $('#btn_send').on('click' , function(){ console.log("ok"); $.ajax({ type : 'POST', url : '/chat/send', data : { message : $('textarea[name="message"]').val(), send : $('input[name="send"]').val(), recieve : $('input[name="recieve"]').val(), } }).done(function(result){ console.log("ok87"); $('textarea[name="message"]').val(''); }).fail(function(result){ }); }); console.log("ok97"); Pusher.logToConsole = true; console.log("ok98"); var pusher = new Pusher('***************', { cluster : 'ap3', }); var pusherChannel = pusher.subscribe('my-channel'); pusherChannel.bind('my-event', function(data) { console.log("ok2"); let appendText; let login = $('input[name="login"]').val(); if(data.send === login){ appendText = '<div class="send" style="text-align:right"><p>' + data.message + '</p></div> '; console.log("ok3"); }else if(data.recieve === login){ appendText = '<div class="recieve" style="text-align:left"><p>' + data.message + '</p></div> '; console.log("ok4"); }else{ console.log("ok5"); return false; } $("#room").append(appendText); }); });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki84web

2020/07/06 15:42

500エラーが出た際はエラーログが残っていると思うので、まずはそれを確認してみて下さい。
guest

回答1

0

ベストアンサー

pusherは使わないことにしました

投稿2020/07/11 15:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問