import { useWebSocket } from "@/hooks/useWs"; import { useState } from "react"; type WidgetProps = { url: string; protocols?: string | string[]; }; export default function WebSocketWidget({ url, protocols }: WidgetProps) { const { status, retryCount, lastMessage, error, bufferedAmount, send, reconnectNow, close, } = useWebSocket({ url, protocols, onMessage: (ev) => { // Example: auto reply to pings console.log(ev.data, "ws event"); if ( typeof ev.data === "string" && // ev.data.toLowerCase().includes("ping") ev.data.toLowerCase().trim() == "ping" ) { try { console.log("sending pong"); send("pong"); } catch {} } }, }); const [outbound, setOutbound] = useState(""); return (
{`import WebSocketWidget from "./WebSocketWidget";
export default function App() {
return (
);
}
`}