• 24-01-2024, 21:26:15
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Tekrar selam.. Bi kaç gün önce nodejs kurulumu hakkında konu açmıştım ve socketio'yu kurup çok basit şekilde html üzerinde chat yapabilecek kadar kurcaladım. Şimdi deneyimli birilerinden yol göstermesini istiyorum. Flutter'da projem var; tamamen firebase'ye bağlıyken her şeyi php scriptlerine çevirdim ve mysql kullanmaya başladım. Şimdi sorunum şu ki bu üçünü chat için nasıl kullanmam gerektiğini bilmiyorum. Yani aklıma gelen mantıklı senaryo; mesaj için veritabanını kontrol edip daha önce mesajlaşma varsa getirecek yoksa oluşturacak. Verinin id'sini socketio'ya aktarıp user1-user2 olarak mesajlaşma sağlamayı düşünüyorum. Ama aynı zamanda uygulama başladığından itibaren mesaj gelirse bildirim düşmesi gerekiyor. Ayrıca sohbeti yedeklemek için sql'e kaydettiğimde her mesaj için sunucuya istek göndermesi gerekiyor ve oluşacak trafik ne olur bilmiyorum. Daha önce deneyimi olan varsa şu şu mantıkta kurabilirsin diye öneride bulunabilir mi? Kod yazmanıza veya detaylı anlatmaya zahmet etmenize gerek yok; yalnızca mantık olarak şu adımlar deseniz de yeterlidir. Teşekkür ederim
  • 25-01-2024, 01:36:11
    #2
    Her mesaj için sunucuya istek gidecek onun kaçarı yok, şöyle yapabilirsin her karşılıklı konuşmayı bir oda olarak var say her chatRoom model, 1. User için parametreler( son mesajı okudu mu bildirimi gördü mü vs gibi) aynısını 2. User içinde yapıcaksın, hatta ikisinden biri mesja kutusunu sildiğinde user1 için görünmez yapabilirisn bile.

    odaya girdiğinde socket io da channel dinlemeye başlayacak flutterdan mesaj gönderdiğinde hem diğer kullanıcının önüne düşecek hep db ye kaydolacak aynı anda.

    chatRoomModel
    MesaageModel yap message model isRead true false dönsün.

    yeni mesaj gönderildiğinde if uygulama arka plandaysa oneSignal ile bildirim gönder değilse uygulama içinden bildirim gelsin.
  • 25-01-2024, 04:14:13
    #3
    TuruncuLab adlı üyeden alıntı: mesajı görüntüle
    Her mesaj için sunucuya istek gidecek onun kaçarı yok, şöyle yapabilirsin her karşılıklı konuşmayı bir oda olarak var say her chatRoom model, 1. User için parametreler( son mesajı okudu mu bildirimi gördü mü vs gibi) aynısını 2. User içinde yapıcaksın, hatta ikisinden biri mesja kutusunu sildiğinde user1 için görünmez yapabilirisn bile.

    odaya girdiğinde socket io da channel dinlemeye başlayacak flutterdan mesaj gönderdiğinde hem diğer kullanıcının önüne düşecek hep db ye kaydolacak aynı anda.

    chatRoomModel
    MesaageModel yap message model isRead true false dönsün.

    yeni mesaj gönderildiğinde if uygulama arka plandaysa oneSignal ile bildirim gönder değilse uygulama içinden bildirim gelsin.
    Teşekkür ederim, demek ki mantığım doğruymuş. Tek sorun her mesaj için istek gidecek ve aktif olarak 100 kişi mesajlaşıyor olsa dakikada binlerce istek gidiyor olacak. Bu kısım kafamı çok karıştırıyor da neyse ya yayınlandıktan sonra kullanıcı sayısına göre ileriyi düşüneceğim. Tekrardan teşekkürler
  • 25-01-2024, 10:54:59
    #4
    Bu yapıyı kullanmayı öğren ama gerçek projede kullanırken bunu kullanmanı tavsiye etmem. Chatleşme paketleri var flutter da belli bir ücret karşılığı apisini alabiliyorsun. Agora nın bir paketi var ona bakabilirsin.
  • 25-01-2024, 13:59:40
    #5
    TuruncuLab adlı üyeden alıntı: mesajı görüntüle
    Bu yapıyı kullanmayı öğren ama gerçek projede kullanırken bunu kullanmanı tavsiye etmem. Chatleşme paketleri var flutter da belli bir ücret karşılığı apisini alabiliyorsun. Agora nın bir paketi var ona bakabilirsin.
    Ücretli şekilde tüm yapıyı tasarlayabileceğim çokca hizmet var evet. Fakat uygulamayı beta olarak sürüp kullanıcı durumuna göre ilerletmek düşüncesindeyim. Tavsiye etmeme nedeniniz nedir?
  • 25-01-2024, 15:49:25
    #6
    ilk defa yapıyorsanız stabil çalışmama ihtimali çok yüksek. Optimizasyon vs gerekli ilerleyen zamanlarda. Evet başlangıçta kullanılabilir ama patlama ihtimali yüksek. Hep bir problem çıkacağı düşüncesindeyim. sistemi kurmakta kolay değil belki iki haftanızı bile alabilir testler vs ile.
  • 25-01-2024, 20:02:15
    #7
    TuruncuLab adlı üyeden alıntı: mesajı görüntüle
    ilk defa yapıyorsanız stabil çalışmama ihtimali çok yüksek. Optimizasyon vs gerekli ilerleyen zamanlarda. Evet başlangıçta kullanılabilir ama patlama ihtimali yüksek. Hep bir problem çıkacağı düşüncesindeyim. sistemi kurmakta kolay değil belki iki haftanızı bile alabilir testler vs ile.
    Teşekkürler. Zaman kısıtlamam yok, yaza girmeden bitirebilirsem sıkıntı olmayacağını düşünüyorum. Uygulama içinde eşleşmelerden tutun oyunlar konular onlarca bölüm var. Fbase ile tamamını bitirmiştim aslında. Şuan mysql ile de bitti sayılır. Sadece anlık verileri halletmem gerekiyor. Ama dediğiniz gibi optimizasyon ve trafiği yönetme hakkında hiç deneyimim yok. Hangi sunucu ne kadar trafiği kaldırır ne olur tek yöntemim deneyerek öğrenmek
  • 25-01-2024, 20:14:40
    #8
    https://github.com/heroiclabs/nakama
    Bunu kullanabilirsiniz. flutter paketi de var.