WebSocket chat with signals, typing indicators, auto-reconnect, and online users
import { ws } from 'tina4js';
const socket = ws.connect('wss://chat.example.com', {
reconnect: true,
reconnectDelay: 1000
});
// Pipe messages into a signal
const messages = signal([]);
socket.pipe(messages, (msg, current) => [...current, msg]);
// Reactive status
effect(() => {
statusEl.textContent = socket.status.value;
});
// Send
socket.send({ type: 'message', text: input.value });