import { useEffect, useState } from 'react';
function WebSocketComponent() {
const [socket, setSocket] = useState(null);
const [messages, setMessages] = useState([]);
useEffect(() => {
// Create WebSocket connection
const ws = new WebSocket('wss://api.productflo.io/ws');
ws.onopen = () => {
console.log('Connected to WebSocket');
setSocket(ws);
};
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
setMessages((prev) => [...prev, message]);
};
ws.onclose = () => {
console.log('Disconnected from WebSocket');
};
// Clean up on unmount
return () => {
ws.close();
};
}, []);
const sendMessage = (text) => {
if (socket && socket.readyState === WebSocket.OPEN) {
socket.send(JSON.stringify({
type: 'chat',
room_id: 'react-room',
data: {
message: text,
sender: 'react-user'
}
}));
}
};
return (
<div>
<h1>ProductFlo WebSocket Chat</h1>
<div>
{messages.map((msg, index) => (
<div key={index}>
{msg.data?.sender}: {msg.data?.message}
</div>
))}
</div>
<button onClick={() => sendMessage('Hello from React!')}>
Send Message
</button>
</div>
);
}