gpt4 book ai didi

php - Laravel echo 回调

转载 作者:行者123 更新时间:2023-12-04 19:29:56 26 4
gpt4 key购买 nike

我正在研究 Laravel Echo(使用 socket.io 作为连接器)

但我不知道如何绑定(bind) 回调当用户/访问者成功或未连接到套接字(不是 channel )时,但通常如果已连接。

import Echo from "laravel-echo"; //import Laravel-echo

if(typeof(io) != 'undefined'){ //check if io loaded
//init Echo
window.Echo = new Echo({
broadcaster: 'socket.io',
host: { path: '/socket.io' }
});
}

所以在这里我会检查 io 存在,那么很可能套接字已启动。

但是我们能否像使用 socket.io 那样绑定(bind)回调:
socket.io 文档中的示例
const socket = io('http://localhost');

console.log(socket.id); // undefined

socket.on('connect', () => {
console.log(socket.id); // 'here we can get socket id'
});

我需要回调的原因是获取套接字 id 并启动其他脚本。

最佳答案

深入研究 laravel echo 源代码,发现有 on事件绑定(bind)器,我们不能立即调用 echo.on('connect', ...) .但是我们可以访问连接器和实际的 socket ,所以这里是解决方案:

if(typeof(io) != 'undefined'){ //check if io loaded
//init Echo
echo = new Echo({
broadcaster: 'socket.io',
host: { path: '/socket.io' }
});

//bind our events
echo.connector.socket.on('connect', function(){
console.log('connected', echo.socketId());
});
echo.connector.socket.on('disconnect', function(){
console.log('disconnected');
});
echo.connector.socket.on('reconnecting', function(attemptNumber){
console.log('reconnecting', attemptNumber);
});
}

关于php - Laravel echo 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com