fix: ensure username and tab title are sent and stored on initial join

This commit is contained in:
Timo
2026-04-22 12:13:33 +02:00
parent 9f004557ed
commit 1910b09bce
2 changed files with 14 additions and 10 deletions
+11 -7
View File
@@ -206,6 +206,7 @@ async function connect() {
password: settings.password, password: settings.password,
peerId, peerId,
username: settings.username, username: settings.username,
tabTitle: currentTabTitle,
protocolVersion: PROTOCOL_VERSION protocolVersion: PROTOCOL_VERSION
}); });
} }
@@ -561,14 +562,17 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
}, () => { }, () => {
if (socket && socket.readyState === WebSocket.OPEN && isNamespaceJoined) { if (socket && socket.readyState === WebSocket.OPEN && isNamespaceJoined) {
// FORCE TRANSITION: Emit Join Room directly if already connected // FORCE TRANSITION: Emit Join Room directly if already connected
emit(EVENTS.JOIN_ROOM, { getSettings().then(settings => {
roomId, emit(EVENTS.JOIN_ROOM, {
password, roomId,
peerId, password,
username: message.username || '', // Use username if provided by bridge peerId,
protocolVersion: PROTOCOL_VERSION username: settings.username, // Use local settings, not bridge
tabTitle: currentTabTitle,
protocolVersion: PROTOCOL_VERSION
});
addLog(`Joining room via link: ${roomId}`, 'info');
}); });
addLog(`Joining room via link: ${roomId}`, 'info');
} else { } else {
connect(); connect();
} }
+3 -3
View File
@@ -154,7 +154,7 @@ io.on('connection', (socket) => {
return; return;
} }
if (!payload || typeof payload.roomId !== 'string') return; if (!payload || typeof payload.roomId !== 'string') return;
const { roomId, password, peerId, username, protocolVersion } = payload; const { roomId, password, peerId, username, tabTitle, protocolVersion } = payload;
try { try {
// Protocol check // Protocol check
if (protocolVersion !== '1.0.0') { if (protocolVersion !== '1.0.0') {
@@ -242,12 +242,12 @@ io.on('connection', (socket) => {
room.peerData.set(socket.id, { room.peerData.set(socket.id, {
peerId, peerId,
username: username || null, username: username || null,
tabTitle: null, tabTitle: tabTitle || null,
lastSeen: Date.now() lastSeen: Date.now()
}); });
socketToRoom.set(socket.id, { roomId, peerId }); socketToRoom.set(socket.id, { roomId, peerId });
socket.to(roomId).emit(EVENTS.PEER_STATUS, { peerId, username: username || null, status: 'joined' }); socket.to(roomId).emit(EVENTS.PEER_STATUS, { peerId, username: username || null, tabTitle: tabTitle || null, status: 'joined' });
socket.emit(EVENTS.ROOM_DATA, { socket.emit(EVENTS.ROOM_DATA, {
roomId, roomId,
peers: Array.from(room.peers).map(sid => room.peerData.get(sid)) peers: Array.from(room.peers).map(sid => room.peerData.get(sid))