Channels.js中的连接返回未定义?

时间:2019-07-05 06:31:39

标签: feathersjs

  

我正在尝试与客户端建立实时套接字连接   侧通过羽毛通道。它没有任何形式的工作   身份验证。但是,如果我添加以下登录操作清单,则   引发弱映射键错误。

app.on('login', (authResult, { connection }) => {
 console.log(connection) // returns undefined
 ....
})

这是我收到的错误

  

未处理的拒绝,位于:Promise Promise {TypeError:   无效的值用作弱映射键         在WeakMap.set()

  app.on('login', (authResult, { connection }) => {
    console.log("============>>", connection)
    if (authResult && connection) {
      app.channel('anonymous').leave(connection);
      if (authResult.user && authResult.user['chanelName']) {
        let channelName = authResult.user['chanelName'].toString();
        channelName = channelName.substr(0, 5)
        app.channel(`channel/${channelName}`).join(connection);
      } else
        app.channel('authenticated').join(connection)
    }
  });

连接对象未定义,我认为这导致了问题。 阿努的建议?

1 个答案:

答案 0 :(得分:1)

请提供客户端脚本。 根据fethers文档,如果没有实时连接,例如通过REST登录时。

您应该验证您的客户端。

示例脚本

@function has-alpha($color) {
  $hasAlpha: str-index($color, "rgba") or (str-index($color, "#") and str-length($color) == 9);
  @return if($hasAlpha, true, false);
}

希望这会对您有所帮助。