Şu makaleyi uygulayarak socket.io ile anlık mesajlaşmayı test ettim. (
http://itsolutionstuff.com/post/laravel-52-chat-message-module-using-socketio-redis-express-and-nodejs-from-from-scratchexample.html )
Şimdi javascript konusundaki bilgim zayıf olduğundan birkaç soru sormak istiyorum. Yapılan işlemlere baktığım zaman belirli port üzerinde gelen giden dataları alıp ekrana basıyor. Lakin bunları kayıtlı tutmuyor tabi. Örnekte verilmiş olan Controller yapısını incelediğimde bu uygulamaya göre bir veritabanı oluşturup gönderilen mesajları aynı zamanda veritabanına kaydedeceğim ve sayfa ilk açıldığında eski gönderileri öncelikle mesajlar alanına yükleyeceğim. Daha sonra aktif konuşmalar da bu şekilde veritabanına kayıt edilip diğer kullanıcıların ekranına yansıyacaktır. Asıl sorum şurada başlıyor. Farkettiğim kadarıyla bu port üzerinde yazılan her yazı diğer kullanıcılar tarafından görülecek. Kullanıcıların önüne sadece kendilerine atılan mesajların düşmesini nasıl sağlarım? Yani bunu ayırt etmem için socket.io tarafında mı bir kontrol yazmam lazım yoksa Controller içinde mi. Aklıma gelen bir kullanıcı diğer bir kullanıcıya mesaj atarken unique bir conversation id oluşturup mesajları bunun altına atabilmek. Lakin socket.io tarafında sadece bulunduğu conversation id ye ait verileri getirmesini nasıl söyleyeceğim. Bulunduğu sayfada javascript kodları arasına conversation id yi post ettirip controller tarafında bu conversation'a ait mesajları getir desem kaynak kodları kısmından id yi değiştirip başka konuşmalara ait verileri de getirebilirler diye düşünüyorum. Bunun çözümü yine Controller içinde kullanıcı kontrolü yapmaktan geçiyor farkındayım fakat kaynak kodunda da gönderilen verinin görünmesi bence sakıncalı bir durum diye düşünüyorum. Bu konuda yol gösterebilecek biri var mı? Hangi adımda nelere dikkat etmem gerekiyor?