44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import { io } from 'socket.io-client';
|
||
|
||
let socket = null;
|
||
|
||
export function getSocketClient() {
|
||
if (!socket) {
|
||
socket = io('http://localhost:3001', {
|
||
transports: ['websocket', 'polling']
|
||
});
|
||
|
||
socket.on('connect', () => {
|
||
console.log('✅ Server-side Socket.IO client connected:', socket.id);
|
||
});
|
||
|
||
socket.on('disconnect', () => {
|
||
console.log('❌ Server-side Socket.IO client disconnected');
|
||
});
|
||
|
||
socket.on('connect_error', (err) => {
|
||
console.error('❌ Socket.IO connection error:', err.message);
|
||
});
|
||
}
|
||
|
||
return socket;
|
||
}
|
||
|
||
export function emitSocketEvent(event, data) {
|
||
const client = getSocketClient();
|
||
console.log(`📢 Attempting to emit event: ${event}, connected: ${client?.connected}`);
|
||
|
||
if (client && client.connected) {
|
||
console.log(`📢 Emitting API event to server: api-${event}`, data);
|
||
// API event olarak gönder, server broadcast edecek
|
||
client.emit(`api-${event}`, data);
|
||
return true;
|
||
} else {
|
||
console.warn('⚠️ Socket not connected, cannot emit event');
|
||
// Bağlantı yoksa yeniden bağlanmayı dene
|
||
if (client && !client.connected) {
|
||
client.connect();
|
||
}
|
||
return false;
|
||
}
|
||
} |