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 |
| Auth | auth: { 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
| Event | Yön | Payload |
|---|---|---|
connected | server → client | { roomId: string, success: true } |
message | server → client | Mesaj nesnesi (Mesaj Geçmişi ile aynı üst yapı) |
error | server → 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
- Ziyaretçi Kaydı →
accessToken - Socket'e bağlan ve
connected/messagedinle - Mesaj Geçmişi ile geçmişi yükle
- Kullanıcı girdilerini Mesaj Gönderme ile gönder
- Bot/agent cevaplarını
messageevent'inden al