UNPKG

mcast-client

Version:

WebSocket client for Mcast real-time messaging

63 lines (53 loc) 1.96 kB
import { McastClient } from "./index"; async function main() { // Initialize the client with your credentials const client = new McastClient({ authToken: "your-auth-token", channel: "test-channel", debug: true, }); // Listen for connection state changes const unsubscribe = client.onStateChange((state, connectionType) => { console.log(`${connectionType} connection state changed to: ${state}`); }); try { // Subscribe to multiple topics console.log("Subscribing to topics..."); await client.subscribe( (topic, message) => { console.log(`Received message on topic '${topic}':`, message); }, ["updates", "notifications"] ); // Publish a message console.log("Publishing message..."); await client.publish("updates", { id: "msg-1", text: "Hello from Mcast client!", timestamp: new Date().toISOString(), }); // Keep the connection open for a while to receive messages console.log("Waiting for messages..."); await new Promise((resolve) => setTimeout(resolve, 30000)); // Unsubscribe from state change events unsubscribe(); // Unsubscribe from a topic client.unsubscribe("notifications"); // Publish using HTTP fallback console.log("Publishing message via HTTP..."); const response = await client.publishHttp("updates", { id: "msg-2", text: "Hello via HTTP!", timestamp: new Date().toISOString(), }); console.log("HTTP publish response:", response); } catch (error) { console.error("Error:", error); } finally { // Clean up and wait for disconnect to complete await client.disconnect(); console.log("Disconnected"); } } // Run the example main().catch(console.error);