Skip to main content

useWebSocket()

The useWebSocket() hook manages WebSocket connections, providing automatic reconnection and state management. It includes functions to send messages and callbacks for different WebSocket events.

Import

import { useWebSocket } from 'react-haiku';

Usage

Loading...
import { useWebSocket } from 'react-haiku';

export const WebSocketComponent = () => {
const { lastMessage, status, sendMessage } = useWebSocket(
'wss://example.com/socket',
{
maxReconnectAttempts: 5,
reconnectDelay: (attempt) => Math.min(5000, Math.pow(2, attempt) * 1000),
onOpen: () => console.log('WebSocket opened!'),
onMessage: (message) => console.log('Received message:', message),
onError: (error) => console.error('WebSocket error:', error),
onClose: (event) => console.log('WebSocket closed:', event),
},
);

return (
<div>
<h3>WebSocket Status: {status}</h3>
<p>Last message: {lastMessage}</p>
<button onClick={() => sendMessage('Hello WebSocket!')}>
Send Message
</button>
</div>
);
};

WebSocket Hook Parameters

NameTypeDescriptionRequired
urlstringThe WebSocket URL to connect to.✅ Yes
Options (Object)Optional Configuration Parameters:❌ No
maxReconnectAttemptsnumberMax attempts for reconnection. Default: 5.❌ No
reconnectDelayfunctionFunction to calculate the delay between reconnection attempts (Default: Exponential backoff).❌ No
onOpenfunctionCallback triggered when the WebSocket connection opens.❌ No
onMessagefunctionCallback triggered when a message is received.❌ No
onErrorfunctionCallback triggered when an error occurs.❌ No
onClosefunctionCallback triggered when the WebSocket connection closes.❌ No