Nodejs Socket Emit Sorun

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    io.sockets.on('connection', function(socket) {
    	socket.on('new user', function(data, callback) {
    		console.log(data);
    		if (nicknames.indexOf(data) != -1) {
    			callback(false);
    		} else {
    			callback(true);
    			socket.nickname = data.user_id;
    			nicknames.push(socket.nickname);
    			connection.query('INSERT INTO online_users SET ?', data, function(err, res) {
    				if (err) throw err;
    				
    				console.log('Last online user ID : ', res.insertId);
    			});
    			updateOnlineUsers();			
    		}
    	});
    	
    	function updateOnlineUsers() {
    		connection.query('SELECT id, name, surname, title, profile_img_path FROM user_information WHERE id IN (SELECT DISTINCT uid FROM online_users)', function (err, rows) {
    			if (err) throw err;
    			
    			console.log(rows);
    			io.sockets.emit('onlineusers', rows);
    		});
    	}
    });

     

    Bu updateOnlineUsers' daki io.sockets.emit diğer tarafa bişey göndermiyor. Hata falan da vermiyor. Eğer sorgusuz (mysql sorgusu yapmadan) direk data yollamaya kalkarsam, o zaman yolluyor. Ayrıca mysql sorgusundaki rows da dolu görünüyor.

    	socket.on('onlineusers', function(data) {
    		for (var i = 0; i < data.length; i++) {
    			var p1 = '<li class="online"><div class="media"><a href="#" class="pull-left media-thumb">';
    			var p2 = '<img alt="" src="images/photos/userprofile.png" class="media-object"></a><div class="media-body">';
    			var p3 = '<strong>'+data[i].title + ' ' + data[i].name + ' ' + data[i].surname +'</strong><small>Los Angeles, CA</small></div></div></li>';
    			
    			$onlineChatUsers.append(p1 + p2 + p3);
    		}                                                
    	});

     


    Hello, i am nothing. I come from Neverland.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    zup


    Hello, i am nothing. I come from Neverland.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    @RockZs hocama duyrulur :)

    Pek müsait değilim ben ilgilenemiyorum


    iyibu! yeniden..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadLyShadoW
    DeadLyShadoW's avatar
    Kayıt Tarihi: 28/Eylül/2009
    Erkek

    Anladığım kadarıyla konsola data da düzgün geliyor. Sorun şu satırda mıdır acaba ? "connection.query('INSERT INTO online_users SET ?', data, function(err, res)"

    Eğer bu yöntem ile işin içinden çıkamaz isen "Express" i öneririm. Hiç mysql'e bulaşmadan işini çözebilirsin. 


    Batmayacağına inanarak suya bas,yürür gidersin... Mucize yürüyebilmen değil inanabilmendir. - Seyyid Ahmet Arvasi
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    ozgunlu hocam, üstteki 'new user' socket eventindeki if-else içinde yer alan updateOnlineUsers(); fonksiyonunu bir üst parantezde (yani mysql sorgusunun içinde, callback'inde, yani "console.log('Last online... " satısından hemen sonra ya da önce..) çağırmayı dener misin?

    estağfirullah by_Tet.. ne haddime.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    Hata yokmuş kodda, hata bende. Php nin içine nodejs sokuşturmaya çalışıyorum.

    Signin olduktan sonra başka sayfaya yönleniyor js üzerinden ama bundan önce socket.on('onlineusers', function(data) { bunu yaptırınca yiyeceğini düşünüyordum ama yemedi.

    Datayı alamadan diğer sayfaya çuf çuf, sonra da kim kime dum duma. Başka türlü denicem, bulamazsam size tüm kodları açıp bi sorarım.

     

    @RockZs evet hocam oraya koymak daha mantıklı ama çok fazla user olduğu için callback olup olmamasının pek manası yoktu. Ama oraya koydum, çünkü doğrusu o :D 


    Hello, i am nothing. I come from Neverland.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    Sorunun çözüldüğüne sevindim :) Kolay gelsin.. Sevgilerle..

Toplam Hit: 827 Toplam Mesaj: 7
nodejs