Php 侦听器未在Laravel Pusher中触发

Php 侦听器未在Laravel Pusher中触发,php,pusher,Php,Pusher,我一直在使用Pusher创建聊天系统。它的工作,但我只收到任何新的消息,从别人当我刷新页面,这是非常烦人的。我尝试了很多方法,但是没有一个能真正解决问题。我真的觉得这是一件我忽略了的超级简单的事情。如果有人能帮我,那太棒了 正如您看到的消息get send,用户可以成功连接并订阅: .env CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 MessageSent.php {

我一直在使用Pusher创建聊天系统。它的工作,但我只收到任何新的消息,从别人当我刷新页面,这是非常烦人的。我尝试了很多方法,但是没有一个能真正解决问题。我真的觉得这是一件我忽略了的超级简单的事情。如果有人能帮我,那太棒了

正如您看到的消息get send,用户可以成功连接并订阅: .env

CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MessageSent.php

{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * User that sent the message
     *
     * @var User
     */
    public $user;

    /**
     * Message details
     *
     * @var Message
     */
    public $message;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user, Message $message)
    {
        $this->user = $user;
        $this->message = $message;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('chat');
    }

    public function broadcastAs()
    {
        return 'MessageSent';
    }
}
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show chats
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('chat');
    }

    /**
     * Fetch all messages
     *
     * @return Message
     */
    public function fetchMessages()
    {
        return Message::with('user')->get();
    }

    /**
     * Persist message to database
     *
     * @param  Request $request
     * @return Response
     */
    public function sendMessage(Request $request)
    {
        $user = Auth::user();

        $message = $user->messages()->create([
            'message' => $request->input('message')
        ]);

        broadcast(new MessageSent($user, $message))->toOthers();

        return ['status' => 'Message Sent!'];
    }
}
app.js

    el: '#app',

    data: {
        messages: []
    },

    created() {
        this.fetchMessages();

        Echo.private('chat').listen('MessageSent', (e) => {
            console.log(e);
            this.sentMessages.push({
                message: e.message.message,
                user: e.user
            });
        });
    },

    methods: {
        fetchMessages() {
            axios.get('/messages').then(response => {
                this.messages = response.data;
            });
        },

        addMessage(message) {
            this.messages.push(message);

            axios.post('/messages', message).then(response => {
                console.log(response.data);
            });
        }
    }
});
created()。此外,无论我是否访问,都无法访问console.log In
Echo.private()

ChatsController.php

{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * User that sent the message
     *
     * @var User
     */
    public $user;

    /**
     * Message details
     *
     * @var Message
     */
    public $message;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user, Message $message)
    {
        $this->user = $user;
        $this->message = $message;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('chat');
    }

    public function broadcastAs()
    {
        return 'MessageSent';
    }
}
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show chats
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('chat');
    }

    /**
     * Fetch all messages
     *
     * @return Message
     */
    public function fetchMessages()
    {
        return Message::with('user')->get();
    }

    /**
     * Persist message to database
     *
     * @param  Request $request
     * @return Response
     */
    public function sendMessage(Request $request)
    {
        $user = Auth::user();

        $message = $user->messages()->create([
            'message' => $request->input('message')
        ]);

        broadcast(new MessageSent($user, $message))->toOthers();

        return ['status' => 'Message Sent!'];
    }
}

另外,我在config/App.php中有未注释的App\Providers\BroadcastServiceProvider。好的,我修复了它。我发现这个问题是由于使用
php-artisan-app:name
更改应用程序名称引起的。因此,我使用以下命令将其更改回App:
php-App:name-App

好的,我修复了它。我发现这个问题是由于使用
php-artisan-app:name
更改应用程序名称引起的。因此,我使用命令将其改回App:
php-App:name-App