• Use Case: Live chat, real-time price updates, copy trading signals.
• Initialize Socket.io client on app load.
• Listen for events like chatMessage, tradeUpdate, etc.
• Dispatch Redux actions to update state for relevant features.
// src/services/socket.js
import { io } from 'socket.io-client';
let socket;
export const initSocket = (token) => {
socket = io('http://localhost:4000', {
auth: { token }
});
return socket;
};
export const getSocket = () => socket;
// src/App.js
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { initSocket } from './services/socket';
function App() {
const token = useSelector((state) => state.user.token);
useEffect(() => {
if (token) {
const s = initSocket(token);
s.on('connect', () => {
console.log('Socket connected');
});
s.on('tradeUpdate', (data) => {
// Dispatch Redux action or update local state
console.log('Incoming trade update:', data);
});
}
}, [token]);
return <div className="App">/* Render routes & components */</div>;
}
export default App;