Real-time Chat

WebSocket chat with signals, typing indicators, auto-reconnect, and online users

How it works — WebSocket Module

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 });