2.3.3.2 Client Integration (React)

// frontend/src/services/socket.js
import { io } from 'socket.io-client';

let socket = null;

export const initChatSocket = (token) => {
  socket = io('http://localhost:4000', {
    auth: { token }, // If using token-based handshake
    transports: ['websocket']
  });

  socket.on('connect', () => {
    console.log('[Chat] Connected:', socket.id);
  });

  socket.on('chatMessage', (msg) => {
    // Dispatch action or update local state
    console.log('[Chat] Received:', msg);
  });
};

export const joinChannel = (channelName) => {
  socket.emit('joinChannel', channelName);
};

export const sendChatMessage = (channelName, content) => {
  socket.emit('chatMessage', { channel: channelName, content });
};

export const getSocket = () => socket;

Last updated