Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
478
Tıklama
0
Öne Çıkarma
Siteme 'yazıyor..' kısmı nasıl yapabilirim?
Y
11 yıl
Onbaşı
Konu Sahibi

Merhaba arkadaşlar, tezim için php de chat programı yapıyorum. Bir tek "yazıyor.." kısmı kaldı. Yani demek istediğim birisi yazı yazmaya başladığında, facebook vb yerlerde ki gibi "yazıyor..." bildirisi çıksın. Kod olarak yardım edemeseniz bile acaba bunu internette ne diye aratabilirim? Neye giriyor bu. Bulamadım bi yardımcı olursanız sevinirim. Hepinize şimdiden teşekkürler.. ^^

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



S
11 yıl
Çavuş

Script olarak aşağıdaki kodu deneyebilir misin?. Php içerisine entegre edebilirsin. Eğer olmazsa tekrar yaz, kendin araştırmak istersen jquery chat user typing olarak da internette örnekler bulabilirsin.

function checkStatus(){ 
jQuery.get('/server-url?chat_id=32&status', function(data){
if (data.status == 'typing')
$('#yaziyor').html('The agent is typing a message..');
else
$('#yaziyor').html('');
checkStatus();
});
}


setTimeout(checkStatus, 300);
var client_timer;
$('#chatMessage').keyup(function(){
if (client_timer) clearTimeout(client_timer);
if ($("#chatMessage").val() == ''){
status = 'empty';
} else {
status = 'Yazıyor...';
}
client_timer = setTimeout(function(){
$.post('/server-url?chat_id=23', {status: status}, function(data){
});
}, 400);
});


Bu mesaja 2 cevap geldi.
E
11 yıl
Binbaşı

şimdi kod yazamıyorum maalesef o yüzden mantığını versem yeterli heralde.
üyelerin kayıtlı olduğu tabloya bulunduğu chat odasını gösteren ve şu anda yazıp yazmadığını (boolean türünden ve default değer 0 olmalı) gösteren bir bölüm ekle. üye chat odasına gidiğinde vt'daki üyeler tablosundaki chat odasını gösteren kısma odanın idsini updatele. sonra javascript ve jquery ile kullanıcı klavyeye bastığında (bunun bi event handleri vardı sanırım) ajax ile istek gönder php'ye. Orada gerekli işlemleri yap ve mysql'deki boolean alanına 1 gir ve chat ekranını refreshlerken istedin yere bilmemne adlı kullanıcı yazıyor diye bastır. sonra yine aynı şekilde kullanıcı elini klavyeden çektiğinde (bununda vardı sanırım) yine aynı şekilde phpye istek gönder ve mysqldeki alanı 0'a geri döndür. ve yine bir müddet sonra chat ekranı refreshleneceği için yaziyor kısmını kaldır. ve tadaa. bitti
ÖNEMLİ NOT: Bu uzun işlem sitenin kasmasına yol açabilir sürekli isteklerden dolayı. O yüzden nodejs'yi bi araştır derim.
not 2: bu mantığı kendin kısaltabilirsin. 10 dklık beyin fırtınası yeter diye düşünüyorum :)
umarın yardım edebilmişimdir.


Bu mesaja 1 cevap geldi.
Y
11 yıl
Onbaşı
Konu Sahibi

Evet dediğiniz gibi yaptım. Çalıştı, fakat şöyle bir durum var, yalnızca yazdığım sayfada "yazıyor..." iletisi çıkıyor. Aslında demek istediğim, ben yazarken karşımda o ileti çıksın. Onu da aşağı da ki arkadaş anlatmış. Şimdi bir de onu deniyeceğim. Teşekkür ederim..




Bu mesajda bahsedilenler: @selomany
Y
11 yıl
Onbaşı
Konu Sahibi

Amanın! :D Okurken bile beyin fırtınası yaşadım zaten :D :D Gözüm korktu. Veritabanımda şuanlık yalnızca "uye" adlı bir tablo var içeriğindeyse,

id
uyeadi
sifre
rutbe
cinsiyet
yas
mail


sütünları mevcut.
(cinsiyet, yas ve mail kısımları var çünkü "kaydol" adlı bir sayfa var ve üye kayıt işlemi yapılıyor.)

Yani demek istediğiniz, ilk olarak "oda" adlı bir tablo açacağım, sonra içine "oda-id" adlı bir sutun ekleyeceğim, daha sonra "uye" tablosuna da "yazma-durumu" ve "oda-id" sutunlarını ekleyip, bunları ilişkilendirecek miyim?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @EskiForumlu
E
11 yıl
Binbaşı

quote:

Orijinalden alıntı: yamidost

Amanın! :D Okurken bile beyin fırtınası yaşadım zaten :D :D Gözüm korktu. Veritabanımda şuanlık yalnızca "uye" adlı bir tablo var içeriğindeyse,

id
uyeadi
sifre
rutbe
cinsiyet
yas
mail


sütünları mevcut.
(cinsiyet, yas ve mail kısımları var çünkü "kaydol" adlı bir sayfa var ve üye kayıt işlemi yapılıyor.)

Yani demek istediğiniz, ilk olarak "oda" adlı bir tablo açacağım, sonra içine "oda-id" adlı bir sutun ekleyeceğim, daha sonra "uye" tablosuna da "yazma-durumu" ve "oda-id" sutunlarını ekleyip, bunları ilişkilendirecek miyim?


evet. bunlar aslında basit şeyler. algoritma bi nevi. o da zaman ile gelişecek :D zaten bir programlama dilinde kaç tane özellik varki. özellikleri ilişkilendiren sensin yani bi düşün :)


Bu mesaja 1 cevap geldi.
G
11 yıl
Yarbay

Yazıyı yazdıktan sonra Enter a veya gönder butonuna bastıktan sonra yaptığın işlemi zamanlayıp 200 ms de bir yapacaksın bu kadar basit. Dönen string dolu ise yazıyordur, boş ile silmiştir ya da yazmıyordur. Hiç algoritma kurmadınız mı hayatınızda?



E
11 yıl
Binbaşı

Hocam yalnız o 200ms işlemi kastırıyor bi süre sonra bizzat kendim gördüm :D. Onun yerine adam gibi nodejs öğrenip eşzamansız yaparsın. Daha az zorlar ve daha kısa bence.



< Bu ileti tablet sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.