当我使用Echo.channel(channelName)
或Echo.join(channelName)
或Echo.private(channelName)
,然后是.listen()
加入频道时,如何确定服务器端的身份验证是否失败?似乎上述所有函数都返回一个js对象,该对象出于所有意图和目的,即使未连接,也看起来像已连接。例如:
var obj = Echo.channel('some-channel-that-always-fails-authentication');
此处,.channel()
返回一个SocketIoPresenceChannel
,其中obj.socket.connected
为true。同时,服务器报告用户“无法通过总是失败的某些通道进行身份验证”,这是我所期望的,因为我故意在routes/channels.php
中的通道定义中返回false。
答案 0 :(得分:1)
您可以在连接器上绑定connect_error
事件以捕获任何连接错误。
例如:
Echo.connector.socket.on('connect_error', function (error) {
// Handle the error
});
然后,当您加入频道时:
Echo.private('some-channel-that-always-fails-authentication');
它将触发句柄回调。