Ana içeriğe geç

Gerçek Zamanlı Mesajlar (Socket.IO)

Bot ve agent cevapları Socket.IO üzerinden iletilir. Widget tarafında mesaj göndermek için socket kullanılmaz; gönderim her zaman Mesaj Gönderme ile yapılır. Socket yalnızca gelen mesajlar içindir.

Bağlantı

Namespace/message
Authauth: { token: accessToken }
Oda{chatAppId}-{chatUserId} — sunucu otomatik join eder
import { io } from 'socket.io-client';

const socket = io(`${BASE_URL}/message`, {
auth: { token: accessToken },
withCredentials: true,
});

accessToken, Ziyaretçi Kaydı yanıtından alınır. Ayrıntılar için Kimlik doğrulama.

Event'ler

EventYönPayload
connectedserver → client{ roomId: string, success: true }
messageserver → clientMesaj nesnesi (Mesaj Geçmişi ile aynı üst yapı)
errorserver → client{ status: number, message: string } — ardından disconnect

connected

socket.on('connected', ({ roomId, success }) => {
console.log('bağlandı', roomId, success);
});

message

socket.on('message', (chatMessage) => {
// chatMessage.type ve chatMessage.data → Mesaj Tipleri
console.log(chatMessage);
});

Örnek payload:

{
"id": "97b56d6f-41d9-4037-ba2f-4d716ee284e0",
"createdAt": "2026-08-03T14:53:05.874Z",
"type": "TEXT",
"nameOfSender": "Support Bot",
"isFromSupport": true,
"data": {
"text": "Nasıl yardımcı olabilirim?"
}
}

type değerine göre data şeması değişir: Mesaj Tipleri.

error

socket.on('error', (err) => {
// örn. { status: 401, message: 'Invalid or missing authentication token' }
console.error(err);
});

Önerilen sıra

  1. Ziyaretçi KaydıaccessToken
  2. Socket'e bağlan ve connected / message dinle
  3. Mesaj Geçmişi ile geçmişi yükle
  4. Kullanıcı girdilerini Mesaj Gönderme ile gönder
  5. Bot/agent cevaplarını message event'inden al