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