###前提・実現したいこと
Laravel5.4を使ってチャット機能のあるサービスを作成中です。
Laravel-Echoを使おうと思い公式をみながら進めているのですが、最初のimportの段階でうまく行きません。
<参考にしているサイト>
https://readouble.com/laravel/5.4/ja/broadcasting.html#installing-laravel-echo
###発生している問題・エラーメッセージ
以下の手順で進めています。
①Laravel-echoのインストール
php
1npm install --save laravel-echo pusher-js
②resources/assets/js/bootstrap.js
にlaravel-echoのimportなどを記述
js
1// resources/assets/js/bootstrap.js 2import Echo from 'laravel-echo' 3 4window.Pusher = require('pusher-js'); 5 6window.Echo = new Echo({ 7 broadcaster: 'socket.io', 8 host: window.location.hostname + ':6001' 9});
③public/js/index.js
にイベントを受け取った際の処理を記述
js
1// public/js/index.js 2Echo.private('chat-room.' + user_id + '.' + friend_id) 3 .listen('EnterChatRoom', (e) => { 4 console.log(e); 5 });
④EnterChatRoomイベントのbroadcastOn()
メソッドを定義
($user,$friendなどはコンストラクタに記述済み)
php
1//EnterChatRoom.php 2class EnterChatRoom implements ShouldBroadcast 3{ 4 // 上部省略 5 public function broadcastOn() 6 { 7 return new PrivateChannel('chat-room.'.$this->user->id.'.'.$this->friend->id); 8 } 9}
⑤コントローラーでイベント発行
//RoomController.php event(new EnterChatRoom($user,$friend));
⑥ここまでやって一旦実行
この段階で下記のようなエラーが出ます。
Uncaught ReferenceError: Echo is not defined
ここでresources/assets/js/bootstrap.js
が読み込まれてないのかと思い、public/js/index.js
内にlaravelのimportとインスタンス化を記述し直したのですが、今度は以下のようなメッセージが出ます。
index.js:2 Uncaught SyntaxError: Unexpected token import
ソースを見ると、以下の部分で上記エラーが発生しているようです。
js
1// public/js/index.js 2import Echo from 'laravel-echo'
こちら以下の2つ問題があると考えてます。
①bootstarp.jsが読み込まれていない(?)
②index.jsにimportを記述した場合laravel-echoがimport出来ない
どちらが根本的な問題はわかりませんが、
上記参考にlaravel-echoをimport出来ない原因、もしくは対処法がありましたらご教示頂けますと幸いです。
また、状況についてご質問ございましたらコメント頂けますと幸いです。
###補足情報(言語/FW/ツール等のバージョンなど)
laravel5.4
laravel-echo@1.3.0
pusher-js@4.1.0
laravel-echo-server1.2.9
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/12 10:31