forked from snxraven/LinkUp-P2P-Chat
Up to date fork #1
22
app.js
22
app.js
@ -173,6 +173,7 @@ function handleIncomingMessage(messageObj) {
|
||||
|
||||
function handleConnection(connection, info) {
|
||||
console.log('New connection', info);
|
||||
|
||||
connection.on('data', (data) => {
|
||||
const messageObj = JSON.parse(data.toString());
|
||||
eventEmitter.emit('onMessage', messageObj);
|
||||
@ -183,9 +184,28 @@ function handleConnection(connection, info) {
|
||||
updatePeerCount();
|
||||
});
|
||||
|
||||
connection.on('error', (error) => {
|
||||
console.error('Connection error', error);
|
||||
if (error.code === 'ETIMEDOUT') {
|
||||
retryConnection(info.topicBuffer);
|
||||
}
|
||||
});
|
||||
|
||||
updatePeerCount();
|
||||
}
|
||||
|
||||
function retryConnection(topicBuffer) {
|
||||
const topic = b4a.toString(topicBuffer, 'hex');
|
||||
const room = activeRooms.find(room => room.topic === topic);
|
||||
if (room) {
|
||||
console.log('Retrying connection to room:', topic);
|
||||
room.swarm.leave(topicBuffer);
|
||||
joinSwarm(topicBuffer).catch((error) => {
|
||||
console.error('Failed to rejoin room after timeout:', error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setupTalkButton() {
|
||||
const talkButton = document.getElementById('talk-btn');
|
||||
if (!talkButton) return;
|
||||
@ -763,4 +783,4 @@ async function connectToAllRooms() {
|
||||
// Call this function when loading the rooms initially
|
||||
renderRoomList();
|
||||
|
||||
initialize();
|
||||
initialize();
|
Loading…
Reference in New Issue
Block a user