настройка толкателя и реактивного толчка - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю над веб-проектом.

У меня есть Laravel в качестве моего бэкэнда реагирования, как у моего интерфейса

У меня есть пользователи, которые оставляют комментарии в моей БД.

Я хотел реализовать pusher, чтобы я мог показывать сообщения в режиме реального времени, как только кто-то из пользователей опубликовал новое сообщение.

Я очень близок к тому, чтобы добиться такого поведения.

на лестнице

У меня есть это событие

class NewPostsCast implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $post;

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

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

} 

и после сохранения сообщения в моей базе данных я запускаю это событие

event(new NewPostsCast($output)); 

на реакцию

let channel = pusher.subscribe("posts");
// i guess error is here because this function never called
// it's only called at startup
channel.bind("NewPostsCast", post => {
    console.log("pusher::: ", post);
});

может быть полезно

из бревна-толкача

Pusher: нет обратных вызовов для сообщений для App \ Events \ NewPostsCast

однако пушер также возвращает этот журнал

Pusher : Event recd : {"event":"App\\Events\\NewPostsCast","channel":"posts","data":{"post":{"id":19,"title":"sd","body":"eksdl","tags":"[\"ds\",\"dsf\"]","user_id":1,"created_at":"2019-04-18 14:22:00","updated_at":"2019-04-18 14:22:00","votes":0,"user":{"id":1,"name":"user1","username":"user1","email":"user1@health.io","address":null,"state":null,"country":null,"gender":"female","phone":null,"avatar":"http://healthqo.api/public/profile_pics/default/female.png","created_at":"2019-04-09 08:30:12","updated_at":"2019-04-09 08:30:12"}}}}

1 Ответ

0 голосов
/ 19 апреля 2019

в случае, если кто-то все еще борется с той же проблемой

, так как реакция и laravel разделены в моем проекте (NewPostsCast) не определен, поэтому мне пришлось изменить первый параметр функции связывания

примерно так:
FROM

let channel = pusher.subscribe("posts");
channel.bind("NewPostsCast", post => {
    console.log("pusher::: ", post);
});

TO

let channel = pusher.subscribe("posts");
channel.bind("App\\Events\\NewPostsCast", post => {
    console.log("pusher::: ", post);
});

Не уверен, почему двойной двойной слэш, но это дает мне синтаксическую ошибку с одной обратной косой чертой

...