Teknik ayrıntılar
Protokol, hata kodları, erişilebilirlik ve her vaadin arkasındaki durum.
Bu sayfa ayrıntı isteyenler içindir. Buradaki her şey ölçülmüş veya kaynaktan okunmuştur; hiçbir şey tahmin değildir.
Widget nasıl yüklenir?
İki aşama vardır. Önce düğmeyi çizen ve başka hiçbir şey yapmayan küçük yükleyici. Sohbetin kendisi yalnızca beş tetikleyiciden biri çalıştığında alınır: tarayıcı boşta olduğunda (en geç üç saniye sonra), düğmede fare veya parmak olduğunda, sayfadan komut geldiğinde, MousePlayer hayal kırıklığı sinyali geldiğinde veya örneğin service worker’ınızdan anlık bildirimle yönlendirme geldiğinde.
Nedeni vardır: çoğu ziyaretçi sohbeti hiç açmaz. Onlar için sayfa yüklemesini geciktirmemelidir; hangi tetikleyicilerin geçerli olduğu script etiketinde ayarlanır.
- Yükleyici: CDN’mizin gzip ile aktardığı biçimde 3,48 kB
- Widget’ın tamamı: aynı biçimde aktarılan 85,5 kB; yalnızca tetikleyicilerden biri çalışınca
- Düğme görünene kadar: 11–21 ms
- Yerleşim kayması: 0,0000; herhangi bir şey görünmeden alan ayrılır
Karşılaştırma için, bunlar da ölçülmüş ve üçü de brotli ile sıkıştırılmıştır: Crisp yükleyicisi 2.876 B, Intercom yükleyicisi 3.161 B. Biz 3.069 B ile aradayız; kat kat daha küçük değiliz. Aksini iddia eden ölçmemiştir.
Sitenizi rahatsız etmez
Widget kapalı shadow DOM içinde yer alır. * { box-sizing: border-box } ayarlasanız veya her şeyi yeniden tanımlayan CSS çatısı kullansanız bile stilleriniz ona, onun stilleri sayfanıza ulaşamaz.
Konsolda tek mesaj olmadan sıkı Content Security Policy altında çalışır: eval, web yazı tipi veya izleme pikseli yoktur. Stillerini style-src kapsamına girmeyen oluşturulabilir stil sayfalarıyla ayarlar. Bu nedenle düğme, sohbet penceresi, ürün turları ve sitenizdeki temsilci paneli unsafe-inline gerektirmez; style-src 'self' ve hatta style-src 'none' altında ölçülmüştür: sıfır ihlal, tam biçimlendirme. Güncel Chromium’da ölçülmüştür; oluşturulabilir stil sayfaları olmayan eski tarayıcılar (16.4 öncesi Safari gibi) <style> öğesine döner; sıkı politika bunu engeller.
Başka sunuculara sıfır istek. Her şey reactive.chat üzerinden veya özel alan adınızla kendi adresinizden gelir; logo ve avatarlar gibi görseller kendinizin verdiği adreslerden gelir.
Protokol
Bağlantı WebSocket kullanır; ağ WebSocket’e izin vermiyorsa normal HTTPS istekleri (server-sent events veya uzun yoklama) kullanır. Protokol sürümlüdür ve 31 hata kodu tanımlar; 26’sı widget, kalanı temsilci paneli ve site içi arama içindir. Her birinin belirlenmiş istemci yanıtı vardır (hemen yeniden dene, bekledikten sonra yeniden dene, yeniden bağlandıktan sonra dene, yeniden deneme); bazılarında kapanış kodu da bulunur. Listede olmayan hata geçici sunucu hatası gibi ele alınır: bekledikten sonra yeniden denenir; beş denemeden sonra mesaj iletilmemiş sayılır ve tekrar gönderilebilir. Sonsuz döngü yoktur.
Artan beklemeyle yeniden bağlanma. Bağlantı kesilirse mesajlar arabelleğe alınır ve bağlantı döner dönmez gönderilir. Her mesaj bir kimlik taşır; sunucu tekrarları tanır ve iki kez saklamaz.
Erişilebilirlik
WCAG 2.2 AA temel alınarak geliştirilmiştir:
- Açık pencerede odak içeride tutulur; ESC kapatır, odak önceki yerine döner
- Yeni mesajlar
aria-liveile duyurulur - Metin ve yüzey arasındaki kontrast varsayılmaz, hesaplanır; aşağıya bakın
- Tam klavye kullanımı, görünür odak halkası
Kontrast hesaplanır
Bir renk verirsiniz. Yüzey tam olarak o rengi alır. Üzerindeki metin, normal metin için WCAG gereksinimi olan 4,5:1 oranına ulaşana kadar değiştirilir.
İki tema ve üç eşleşmede 178 renk üzerinde, yani 1.068 veri noktasında ölçülmüştür: hiçbiri 4,5:1 altında değildir; en kötü değer 4,50:1.
Diğer sağlayıcılardan farkı budur: oralarda widget kimsenin okuyamayacağı hâle gelecek kadar ayarlanabilir.
Kişisel veriler
Maskeleme iki yerde yapılır: makineden herhangi bir şey çıkmadan önce ziyaretçinin tarayıcısında ve herhangi bir şey saklanmadan önce sunucuda tekrar. Kart numaraları (Luhn kontrolüyle), IBAN’lar, e-posta adresleri, telefon, vergi ve kimlik numaraları tanınır. Sipariş ve müşteri numaralarına dokunulmaz.
İki yerde, çünkü biri yeterli değildir: tarayıcıdaki kapatılabilir; sunucudaki yalnızca ulaşanı görür.
Kurallar
Widget’ın ne zaman sesleneceği, koddaki koşulda değil bildirimsel kural listesinde tanımlanır. Varsayılan altı kural gelir (sayfada bekleme, öfke tıklaması, JavaScript hatası, takılı kalınan form, satın alma niyeti, ödeme sayfasından ayrılma); öfke tıklaması, takılı kalınan form ve satın alma niyeti yalnızca MousePlayer ile birlikte algılanır. Kendi kurallarınız hesabınızdan eklenebilir. Free planında proje başına bir etkin yönlendirme uygulanır.
Fark pratiktir: kural değiştirmek dağıtım değil, hesabınızda ayar değiştirmektir.
Entegrasyonlar
Webhook’lar ve Slack tamamlanmıştır. 30’dan fazla başka hizmet için bağlantı hazırdır; çoğu benzetilmiş karşı taraflarla test edilmiştir, ancak gerçek hizmetle hiç çalıştırılmamıştır. Hesabınızdaki entegrasyon sayfası bunları bu şekilde işaretler.
Sunucu API’si (REST ve MCP) sohbetleri, mesajları, projeleri, ziyaretçileri, olayları ve kuralları okur; mesaj ve olay yazar, webhook kaydeder. Ziyaretçi listesi ve MCP proje başına kapatılabilir.
Her entegrasyon devre kesicili kuyruktan geçer: üçüncü taraf takılırsa tekrarlanan hatalardan sonra bir süre atlanır. Sohbet mesajı bundan dolayı asla bekletilmez; bu katmandaki en önemli kural budur.
Tamamlanmamış olanlar
Entegrasyon sırasında ortaya çıkmaması için:
- MousePlayer köprüsü yoklama yapar; çünkü MousePlayer üzerinde anlaşılan olayları henüz kendisi üretmez.
- Ekler, A/B testleri ve özel alan adınız beta olarak çalışır: çalışırlar ve ölçülmüşlerdir, ancak değişebilirler.
- E-posta, Telegram, SMS, WhatsApp, Messenger ve Instagram kanalları benzetilmiş karşı taraflarla test edilmiştir; henüz gerçek hesaplarla değil. Kanal üzerinden yanıt kalıcı olarak başarısız olursa sohbet şu anda bunu göstermez.
Dokümantasyonda daha fazlası
Widget, sunucu ve bağlantının birlikte çalışması: Mimari ve akış. Bağlanma, HTTP yedeği ve yeniden bağlanma: Taşıma. Tüm bölümler: dokümantasyon.
آخرین بهروزرسانی: