在private-channel.1上连接,但不在private-channel.2上连接-Laravel-echo-server

时间:2018-08-21 17:18:33

标签: laravel laravel-5 laravel-4 laravel-echo

我面临一个非常奇怪的问题,我无法理解。

我正在为我的应用程序使用vue和laravel,它们都在不同的端口上独立运行。而且我正在使用laravel作为api。

const tokenData = JSON.parse(window.localStorage.getItem('authUser'))
if (tokenData !== null) {
  console.log(tokenData.token)
  window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://localhost:6001',
    auth: {
      headers: {
        'Authorization': 'Bearer ' + tokenData.token
      }
    }
  })

  store.watch(
    // When the returned result changes...
    function (state) {
      return state.userStore.authUser.user_id
    },
    // Run this callback
    (userId) => {
      window.Echo.private(`cchannel.${userId}`)
        .listen('ChatMessage', (e) => {
          console.log(e)
        })
    }
  )
}

我正在使用api服务,因此我必须使用auth标头来在专用渠道上进行身份验证。

然后使用vuex获取user_id,然后最终如代码所示为单个用户创建动态渠道。

我在终端中得到的是

[22:38:55] - kAUI5s8ytJ6t39dSAAAB authenticated for: private-cchannel.1
[22:38:55] - kAUI5s8ytJ6t39dSAAAB joined channel: private-cchannel.1
[22:39:03] - kAUI5s8ytJ6t39dSAAAB left channel: private-cchannel.1 (transport close)
⚠ [22:39:04] - WsvwWe7spHCuKXyjAAAC could not be authenticated to private-cchannel.3

具有1的用户ID可以在private-cchannel.1上进行身份验证,但是具有3的用户ID不能相同。

那是怎么回事?

我试图给静态通道名称提供类似cchannel.1的连接,但是当我更改为cchannel.2时却没有。

0 个答案:

没有答案