Как заставить перезагрузить страницу, чтобы POST запрос прошел - PullRequest
0 голосов
/ 26 сентября 2019

После проверки, может ли пользователь присоединиться к каналуsenceChannel, я ожидаю, что данные $ user будут показаны на моей странице.Это появляется после того, как я нажал обновить.Мой вопрос заключается в том, как принудительно перезагрузить страницу без необходимости загрузки ее вручную (чтобы POST-запрос прошел)?

Broadcast::channel('online', function ($user) {
  if(auth()->check())
     return $user;
});

Компонент

<tbody>
       <tr v-for="user in users" :key="user.id"> 
            <td>{{user.name}}</td>
            <td>{{user.ip}}</td>
        </tr> 
</tbody>

export default { 
     data() {
        return {
            users:[],            
      }    
   },   

    mounted() {
           window.Echo.join('online')
            .here(users => (this.users = users))       
    }, 
}

1 Ответ

1 голос
/ 26 сентября 2019

Спасибо за размещение вашего кода.Похоже, мы можем исключить угол PHP, который я упомянул в комментарии выше.Я думаю, проблема в том, что вы не слушаете новых пользователей.

# Присоединение к каналам присутствия
https://laravel.com/docs/5.8/broadcasting#joining-presence-channels

здесь обратный вызов будет выполнен сразу же после успешного подключения к каналу и получит массив, содержащий информацию о пользователях для всех других пользователей, которые в настоящее время подписаны на канал.

Для меня этоуказывает, что метод here срабатывает только один раз, когда ваше приложение присоединяется к каналу.Чтобы получить новых пользователей, вам нужно будет подписаться на дополнительные события и отправить нового пользователя (или удалить пользователя из) массива пользователей в полученном виде.

window.Echo.join('online')
    .here((users) => {
        // loads the initial data
        this.users = users;
    })
    .joining((user) => {
        // push a newly joining user to the users array
        // ...
    })
    .leaving((user) => {
        // delete a user who is leaving from the users array
        // ...
    });

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...