laravel vue.js 推动者
laravel vue.js pusher
我使用 laravel 5.5 和 vue.js 制作测试应用程序,我在 pusher laravel echo 中使用。
当我从应用程序发送消息时,我可以在 "pusher.com" 中看到
消息已成功发送的调试控制台,因此我知道它的工作。
但是我从 vue js Echo 什么也没得到,我什至没有收到错误,怎么了?
vue
created(){
window.axios.post('/message')
.then((res) => {
this.messages = res.data;
}),
Echo.join('chat')
.listen('MessagePosted',(e)=>{
console.log(e)
});
}
bootstrap.js
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: '1a67166bcd6eb7ce7e67',
cluster: 'us2',
encrypted: true});
控制器
public function store(Request $request){
$message = Auth::user()->messages()->create([
'message' => $request->message,
]);
event(new MessagePosted($message,Auth::user()));
return ['status' => 'OK'];
}
型号
class MessagePosted implements ShouldBroadcast
{
使用 Dispatchable、InteractsWithSockets、SerializesModels;
/**
* @var Message
*
*/
public $message;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Message $message,User $user)
{
$this->message = $message;
$this->user = $user;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PresenceChannel('chat');
}}
channels.php
Broadcast::channel('chat', function ($user) {
return $user;});
agein,当我从我的站点发送消息时 "pusher.com" 实时收到消息,但我从 Echo 看不到任何信息,而且我没有任何错误
有人可以帮忙吗?
默认情况下,Laravel 的 ShouldBroadcast 为广播事件使用作业队列。您可以设置您的队列,这可能是理想的解决方案。或者,要使其快速运行,您可以将 MessagePosted 事件更改为 ShouldBroadcastNow:
class MessagePosted implements ShouldBroadcastNow
别忘了
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
我使用 laravel 5.5 和 vue.js 制作测试应用程序,我在 pusher laravel echo 中使用。 当我从应用程序发送消息时,我可以在 "pusher.com" 中看到 消息已成功发送的调试控制台,因此我知道它的工作。 但是我从 vue js Echo 什么也没得到,我什至没有收到错误,怎么了?
vue
created(){
window.axios.post('/message')
.then((res) => {
this.messages = res.data;
}),
Echo.join('chat')
.listen('MessagePosted',(e)=>{
console.log(e)
});
}
bootstrap.js
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: '1a67166bcd6eb7ce7e67',
cluster: 'us2',
encrypted: true});
控制器
public function store(Request $request){
$message = Auth::user()->messages()->create([
'message' => $request->message,
]);
event(new MessagePosted($message,Auth::user()));
return ['status' => 'OK'];
}
型号
class MessagePosted implements ShouldBroadcast
{ 使用 Dispatchable、InteractsWithSockets、SerializesModels;
/**
* @var Message
*
*/
public $message;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Message $message,User $user)
{
$this->message = $message;
$this->user = $user;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PresenceChannel('chat');
}}
channels.php
Broadcast::channel('chat', function ($user) {
return $user;});
agein,当我从我的站点发送消息时 "pusher.com" 实时收到消息,但我从 Echo 看不到任何信息,而且我没有任何错误
有人可以帮忙吗?
默认情况下,Laravel 的 ShouldBroadcast 为广播事件使用作业队列。您可以设置您的队列,这可能是理想的解决方案。或者,要使其快速运行,您可以将 MessagePosted 事件更改为 ShouldBroadcastNow:
class MessagePosted implements ShouldBroadcastNow
别忘了
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;