我正在尝试与客户端建立实时套接字连接 侧通过羽毛通道。它没有任何形式的工作 身份验证。但是,如果我添加以下登录操作清单,则 引发弱映射键错误。
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)
}
});
连接对象未定义,我认为这导致了问题。 阿努的建议?
答案 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);
}
希望这会对您有所帮助。