Nasıl kullanıcıları eşleştirmek için?

1 Cevap php

Ben temelde öğrenme amaçları için, bir Omegle.com clone script yapmaya çalışıyorum. PHP / MySQL / AJAX bunu yapıyorum.

Ben sorunları İki kullanıcıları bulmak ve onları bağlayan yaşıyorum. Omegle amacı "rastgele" iki kullanıcıları bağlanıyor.

Ya şimdi yapıyorum şöyledir:

  • Bir kullanıcı girdiğinde, web sitesi bir oturum atanır.
  • (Sohbet Normal, bekliyorum,) her oturum / kullanıcı için 3 devletler vardır
  • İlk başta kullanıcı devlet Normal vardır ve bir alan "connected_to" = null
  • Kullanıcıların START düğmesine, "Bekleyen" bir devlet tıklarsa atanır. O zaman değiştirmek için "connected_to" bekliyor, loop tutar birini bulamazsa o zaman, devlet bekliyorum ile başka bir kullanıcı arar. "Connected_to" diğer kullanıcı tıklama BAŞLANGIÇ değiştirmek ve daha sonra başka bir kullanıcı bekliyor bulmak ve buna göre oturumları günceller olacaktır.

Şimdi bu çeşitli sorunlar var, gibi:

  • Bir kullanıcı, bir seferde sadece bir müşteri ile bağlanabilir. Omegle olarak aynı anda birden fazla sohbet açabilirsiniz.
  • Bu en iyi yolu ise bilmiyorum.

Sohbet hakkında, her bir kullanıcı AJAX çağrıları ile sunucudan olaylar, omegle, bunun yerine çeşitli HTTP istekleri her (diyelim) ikinci, ONE isteği ve bir cevap için bekleyin, bu PHP komut dosyası olduğu anlamına gelmez gördüm yoklama Bir answer.I döngü her başlatıldığında bu kullanarak set_time_limit (30) yaptım gelene kadar süresiz olarak döngü. Ajax arama tekrar başlamak yapılır sonra zaman. Bu yaklaşım doğru mudur?

I will appreciate a LOT your answers, Thank you,

Carlos

1 Cevap

Ikisi de bariz artıları ve eksileri var gibi ben şahsen, yoklama sunucu ve süresiz olarak açık isteği bırakarak arasında pek bir fark görmüyorum. Her iki deneyin ve bir daha fazla maliyeti olduğunu görmek. Birçok müşteri taşıma sunucusu meşgul olan yeni ziyaretçiler için neden zaman aşımı hataları sona ererse, o zaman gerçekten sizinki gibi bir sohbet odası için iyi bir durum değil.

Daha fazla şeyler çalıştı sahip bir kez, aynı zamanda bir kuyruklu yıldız sunucusu ya da web yuvalarına bakmak isteyebilirsiniz, ama ben sohbet / maç özellikleri, ilk iş yapma odaklanmak istiyorum.

Kullanıcı çoklu sohbetler olabilir, ama onlar hala bir-bir sohbet başına eşleştirilmiş ise bir kullanıcı (gönüllü varsayarak) yeni bir sohbet istiyorsa, aslında yeni bir başlangıç ​​nerede, Yani, ben şahsen bir çözüm düşünmek istiyorum oturumu. Her kullanıcı nesnesi, birden fazla (ya da sonsuz) sohbet oturumları olabilir ki bunu yapmak, sizin gibi her biri açıklanmıştır: "Normal; bekleme, sohbet". A kullanıcısı odaya girerse, o "hazır" butonuna musluklar ve bu normal bekleme yaptığı ilk oturumu değiştirir böylece. O biriyle karşılaşır sonra, yeni bir "normal" oturum tacked alır ve o vb bazı butonuna basarak "bekleyen" bu birini değiştirebilirsiniz

Sürekli döngü biraz aşağı gitmek yapmak olabilir bir şey sadece orada kaç mevcut veya "bekleme", kullanıcıların sorgu etmektir. Durum 0 ise 0'dan daha yüksek olana kadar, daha doğrusu onlar bekleyen ya da olup olmadığını görmek için odadaki tüm üyeler arasında döngü daha, denetimi tutmak.

Eğer toplam sayar bir yöntem varsa, adam bekleme sayılır olacak çünkü ikinci düşünce, 0 yerine, 1'den onu daha fazla yapmak.