Laravel echo 不与私人频道合作,但与公共频道合作

问题描述 投票:0回答:1
window.Pusher = Pusher

  window.Echo = new Echo({
    broadcaster: 'pusher',
    withCredentials: true,
    auth: {
      headers: {
        ...commonHeader
      }
    },
    key: 'local',
    cluster: 'mt1',
    wsHost: 'freephone.test',
    wsPort: 6001,
    forceTLS: false,
    disableStats: true,
    encrypted: true,

    // enabledTransports: ['ws', 'wss'],

    authorizer: (channel, options) => {
      return {
        authorize: (socketId, callback) => {
          $apiFetch('http://freephone.test/api/v1/broadcasting/auth', {
            method: 'POST',
            body: {
              socket_id: socketId,
              channel_name: channel.name
            },
            headers: {
              ...commonHeader,
            }
          })
            .then((response) => {
              console.log('Broadcast', response)
              callback(null, response.data)
            })
            .catch((error) => {
              callback(error)
            })
        }
      }
    }
  })
  window.Echo.private('messages.1').listen('MessageReceived', (response) => {
    console.log('Actual Listen', response)
  })
  console.log('Private End')

活动已发送

事件(new MessageReceived($message, $thread, $this->getToUser($to)->user_id, $to));

活动类

公共函数broadcastOn():数组 {

    return [
        new PrivateChannel('messages.1'),
    ];
}

频道.php

Broadcast::channel('messages.1', function (User $user) { \Illuminate\Support\Facades\Log::info('广播授权');

return true;

});

laravel websocket pusher pusher-js laravel-events
1个回答
0
投票

你能告诉我控制台的输出是什么吗

© www.soinside.com 2019 - 2024. All rights reserved.