У меня проблема с использованием Socket.io.Событие socket.io 'connect' или 'reconnect' не запускается после повторного подключения
код прост:
var socket = null;
var socketInit = false; //if it is true, use reconnect
...
function connect() {
if(!socketInit) {
socket = io();
socketInit = true;
//attach event handlers
socket.on('connect', function() {
console.log('connect fired!');
});
socket.on('disconnect', function() {
console.log('disconnect fired!');
});
socket.on('reconnect', function() {
console.log('reconnect fired!');
});
}
else {
socket.io.connect();
}
}
...
function disconnect() {
socket.disconnect();
}
, как вы можете видеть, есть две функции, которые соединяют или отсоединить разъем. и в функции соединения он присоединяет к сокету «подключить», «отключить», «повторно подключить» обработчики.
Сначала я назвал функцию соединения, она работает хорошо. серверная сторона также хорошо работает. и я называл функцию разъединения, также хорошо работает с сервером.
, но я позвонил снова соединять функцию, что означает «socketInit» переменная истинна, поэтому подключиться функция пытается:
socket.io.connect();
я проверил консоль сервера и клиента как и выглядит, как он подключен, но проблема в том, что события не уволены!
Событие «соединение» на стороне сервера было запущено при повторном подключении, но событие «подключение» или «повторное подключение» на стороне клиента не было запущено. я попытался выяснить, что происходит, но все же я не понимаю. я много раз проверял веб-консоль и серверную консоль, и само соединение работает нормально, но проблема в том, что события не работают!
Если кто-то знает дорогу, он будет очень признателен, чтобы помочь мне. спасибо;)
p.s. Я попытался добавить обработчики событий «повторно подключен», «повторно подключиться», «повторно подключиться», но не работает.
Я не уверен, что вы можете сделать это так. Кто подключается к этому сокету? Если это клиент socket.io, то только клиент может повторно подключиться. –
xbirkett // спасибо за комментарий. это код на стороне клиента. Я просто хочу, чтобы клиент мог подключиться/отключиться/снова подключиться в любое время, когда захочет. у вас есть лучшее предложение об этом? он будет очень благодарен за лучший способ;) – modernator