私はベネズエラ出身です。私はlaravelエコーをプロジェクトに統合しようとすると問題を抱えています。私はすべてを試してみたいと思います。Laravelエコーは聞き取れません
多分私は正しい方法で作業していません。
私はスタートアップで働いていて、プッシャーのようなサービスを支払うのが非常に難しいので、私はsocket ioでブロードキャストイベントを使用しようとしています。確定グループによると
私は、単純なリアルタイムチャットをやろうとしている..
私chatController ..です
public function index(Request $request){
$sender=Auth::user()->id;
$receiver=\App\User::find(2);
$message=new Message;
$message->message="Hola, esto es una prueba de eventos";
$message->user_receiver_id=$receiver->id;
$message->user_sender_id=Auth::user()->id;
$message->id_chat=1;
$message->save();
event(new \App\Events\sendMessage($message,$receiver));
return response()->json(["status"=>"ok"]);
}
データベースでこのチャットストアメッセージ(チャット)。
焼成されるイベントである:
クラスのsendMessageがShouldBroadcast {がディスパッチ可能、InteractsWithSockets、SerializesModelsを使用実装
。/**
* Create a new event instance.
*
* @return void
*/
public $message;
public $user_receiver;
public function __construct(Message $message,User $user_receiver)
{
$this->message=$message;
$this->user_receiver=$user_receiver;
}
public function broadcastOn()
{
\Log::info($this->message->id_chat);
return new PrivateChannel('chat.1');
}}
私app.jsは次のとおりです。最初のインスタンスで
require('./bootstrap');
import Echo from "laravel-echo";
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
window.Echo.channel('chat.1')
.listen('sendMessage', e => {
console.log(e);
});
私はちょうどたい私はビューを構築するための意志この後、私のsendMessagesイベントからパブリック変数を取得します。
私はphp artisanリスナーを実行し、私はlaravel echo serverを実行します。
私は、プロセスの作業罰金はなく、私が唯一の問題を持っていることを考えると思います:私は、メッセージを送信するとき
これはlaravelエコーサーバーとリスナーで起こります
メッセージを送信するときにクライアントで何も起こらないためです。
私の英語のために申し訳ありません、あなたが私を助けることを願っています。