hcan
1) Laravel Echo kanallara kolayca abone olmanızı ve olayları kolayca dinlemenizi sağlayan bir javascript kütüphanesi. Laravel'in broadcasting özellikerini kullandığı için kullanması kolay. Öteki türlü her şeyi elle yapmak zorunda kalacaksınız. En basitinden şu iki örneğe bakın, ikisi de aynı işi yapıyor olmasına rağmen Echo daha anlaşılır ve sade:
Echo
.channel(`orders.${orderId}`)
.listen('OrderShipmentStatusUpdated', (e) => {
console.log(e.order.name);
});
socket.on(`orders.${orderId}:App\\Events\\OrderShipmentStatusUpdated`, function(e) {
console.log(e.order.name);
});
2) socket.io ile elbette token kullanabilirsiniz, dokümanlarına bakabilirsiniz.
3) Evet PrivateChannel kullandığınızda broadcaster her yayın yapmasında auth için sorgu atılır ama bu sayede her zaman güncel kullanıcıya erişirsiniz ve sisteminiz kullanıcıda meydana gelen değişiklerden anında etkilenir ve istenmeyen durumların oluşmasına engel olunur. Çok fazla yayın gerçekleştiğinde bir yük oluşturacağı aşikar ama bunu söylemekten dilimde tüy bitti, bunun yük oluşturması için çok ama çok fazla istek olması lazım. Sanki forumdaki herkes aynı anda 5-6 bin olay tetikliyor da scalable altyapı kullanarak ayda $1000-2000 harcıyor da bunu azaltmaya çalışıyor gibi düşünüyor 🙂 Bunu engellemenin tabi ki yolu var; JWT gibi stateless bir auth kullanmak ama o da kullanıcının bazı bilgilerini oluştuğu zamanki haliyle tutar, kullanıcı güncellenirse tokendaki bilgisi tabi ki güncellenmez. İhtiyaca göre seçilen şeyler bunlar, hepsi isteneni yapmıyor yani.