Laravel Echo присоединяется к частному каналу `.here()`

У меня есть присоединение к частному каналу:

Echo.private('chat_room.'+comments_room_id)
.listen('.App.Events.Common.Comment.CommentCreated', function(e) {
                    e.comment.user = e.user;
                    e.comment.new_msg = 1;
                    _this.comment_room.comments.unshift(e.comment);
                });

Я хотел бы использовать вызов присутствия .here(), чтобы обновлять массив пользователей, которые в настоящее время находятся в сети.

Я пробовал следующее:

Echo.private('chat_room.'+comments_room_id)
                    .here(users => {
                        this.users = users;
                    })
                    .listen('.App.Events.Common.Comment.CommentCreated', function(e) {

Но это не сработало...

Ошибка в консоли: Echo.private(...).here is not a function


person Andrew    schedule 03.03.2017    source источник


Ответы (1)


Итак, я обнаружил, что вам нужно также присоединиться к каналу присутствия вместе с частным каналом, чтобы использовать методы here().

                Echo.join('chat_room.'+comments_room_id)
                .here((users) => {
                    this.users = users;
                })
                .joining((user) => {
                    this.users.push(user)
                })
                .leaving((person) => {
                    this.users = _.reject(this.users, user => user.id == person.id);
                });
person Andrew    schedule 03.03.2017