fix: unreliable websocket functionality #144

Merged
talksik merged 6 commits from unreliable-websocket-infra into master 2026-04-12 17:00:12 +00:00
Showing only changes of commit bb66bc4950 - Show all commits
+3 -9
View File
@@ -22,12 +22,6 @@ export function useChannel(channelId: string | null): UseChannelResult {
const [presence, setPresence] = useState<string[]>([]); const [presence, setPresence] = useState<string[]>([]);
const [messages, setMessages] = useState<ChannelMessage[]>([]); const [messages, setMessages] = useState<ChannelMessage[]>([]);
// Keep a ref to avoid re-subscribing when sendMessage changes
const clientRef = useRef(client);
const channelRef = useRef(channelId);
clientRef.current = client;
channelRef.current = channelId;
useEffect(() => { useEffect(() => {
if (!client || !channelId) { if (!client || !channelId) {
setPresence([]); setPresence([]);
@@ -80,11 +74,11 @@ export function useChannel(channelId: string | null): UseChannelResult {
const sendMessage = useCallback( const sendMessage = useCallback(
(payload: unknown) => { (payload: unknown) => {
if (clientRef.current && channelRef.current) { if (client && channelId) {
clientRef.current.sendMessage(channelRef.current, payload); client?.sendMessage(channelId, payload);
} }
}, },
[], [client, channelId],
); );
return { presence, messages, sendMessage }; return { presence, messages, sendMessage };