hocam r10daki bu arkadaş sen misin http://www.r10.net/php/1223935-php-node-bire-bir-chat-mantigi.html

Selam arkadaşlar, NodeJs ile okula bir proje devi yapıyorum. Proje ğrencilerin kendi arasında konuşabileceği bir sohbet uygulaması ancak ben aynı zamanda ğrenmek için sıfırdan kodluyorum. Piyasadan çalmıyorum yani... Şimdi sorum şu,, Servera 30 kişi bağlı ve otuzuda aynı pencereye yazı yazabiliyor bunda her hangi bir sıkıntı yok, Ben servera bağlı olan kişilerin hepsine "socket. broadcast. emit ;" komutu ile toplu olarak mesajda gnderebiliyorum. Bundada sıkıntı yok... Soru şu Ancak facebooktaki gibi 2 kişi kendi arasında mesajlaşma yaptığında bunu tüm server a değil aralarında sabit bir değişken ile mesajlaştırmam lazım. Yani sadece bu 2 kişi kendi arasında bağlantı kurdurtmam lazım. rnek vermem gerekirse x ve y arasındaki konuşmada. X mesajı yazdı ve entera bastı server. js de socket. broadcast. emit. y ; gibi bir şekilde yollamalıyım ki bunu sadece client y grebilsin ve isteği alsın. Çok çok teşekkürler, tecrübeli arkadaşları desteğe davet ediyorum :) Php for SEO nun ardından Php for Gcode

bunu iki şekilde halledebilirsin. aslında web için çok bilgim yok sadece senaryo üzerinden gideyim.. 1- her client ın bir unique id si olur, ve gnderilen mesaj içerisinde bu unique id barındırılır. bu id ler client ın kendi idsi ve gnderdiği kişinin id si olacak. sunucu yazılımı da buna gre mesajı gnderen client ın kime gnderdiğinin id den tespit edip o client a mesajı iletecek. 2- yine aynı şekilde tüm clientların id leri olacak, bir client başka bir client a mesaj yazdığında, bu mesaj tüm clientlara iletilecek, ancak client yazılımı gelen mesajdaki id ye bakacak (1. maddedeki gibi gnderilenin id sini de barındırıyor mesaj), bu id yi kendi id siyle karşılaştıracak eğer eşit ise mesajı gsterecek, değilse es geçecek. bu dediğim şeyler ağ topolojilerinde vardı ancak uzun zaman geçtiği için unuttum :) 2. yntem trafiği daha çok yoracaktır. çünkü gereksiz şekilde mesajlar başka clientlara gidecektir. nodejs ya da socket.io hiç kullanmadım. bu tarz bir protokol için cometD kullanmıştım. bilmiyorum php için var mı ya da türevi var mıdır.. o zaman yaptığımız sistemde 2. maddedeki gibi çalışıyordu. tabi adamların sunucuları da güçlüydü ve çok fazla iş olmuyor diye bu şekil bir tasarım yapmışlardı.. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hocam mysql filan kullanmana gerek yok mongodb gibi bi nimet varken @Krypt in dediği gibide yapılabilir benim yaptığım socketlere session tanımlaması yapmak io. sockets. authorization(function { //socket in hangi session ile bağlandığını buluyoruz tabi adamın bağlanmadan nce üye girişi yapması gerek express nodejs ile basit bi üye giriş sayfası yaparsın, üye girdiğinde sessionuna username tanımlama yap, sessionstore filan tanımla nodejs için authorization kısmında lazım olucak if else { var signedCookies = require . parse ; handshakeData. cookies = require . parseSignedCookies ; var sid = handshakeData. cookies ; sessionStore. get(sid, function { if return callback ; //tamam session bulduk ve kullanıcı girişi yapmış hata yok if { //socket.io da session tarzı socketlere tek seferlik değişken eklenebiliyor aşadaki gibi sessiondaki verileri sockete geçirdim //socketin hangi usernameden bağlandığı şuanda belli handshakeData. session = ; return callback ; } else }); }}); io. sockets. on('connection', function istediğin zaman aşadaki gibi istediğin username'i olan sockete yollarsın veriyi var uname= 'test'; io. sockets. clients . forEach(function { //bütün bağlı olan socketleri foreach yaptık bu kısım performans açısından geliştirilebilirif }); detCode tarafından 11/Mar/14 15:15 tarihinde düzenlenmiştir Who is detCode?

Aynen araştırmalarımda bu rneği grdüm ancak uygulayacak zamanım yok. Bi uygulayım sonra burayada yazarım. Bu arada kardeşim o kod parçalarını yayımlayabilirsen rnekleri incelemiş oluruz biraz daha bir şeylerde kendimizi aşmış oluruz. Bu arada nodejs, socket.io, node-mysql gibi kütüphaneleri kullanıyorum üye girişi mesaj yazımında veri tabanından güvenlik kontrolünü felan yaptırıyorum. Bunun yanında node-js nin node-connect kütüphanesi var onuda inceledim ama çzmekle uğraşıyorum. Bilgisi olan yazsın hem ben hemde bu işle ilgilnen diğer arkadaşlar için güzel oluş olur. Teşşkürler. Php for SEO nun ardından Php for Gcode

ben benzer bir seyi C++ ile yapmak zorunda kaldiydim, acilan soketleri handlerlarini tutuyordum, sonra o handla sadace yolluyordum gelen veri p2p olacak ise. Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.

üstad, inan senaryoların çok daha komplekslerini düşündümi bu senaryolarla zaten bunu yapabiliyorum. Jquery sok. Benzersiz ıd tanım, o id user ın mesaj alanındaki div id sine eşitse içerisine gel mesajı yaz gibi bir çok senaryo var. Ama nodejs varsa bunlara gerek yok onu biliyorum. Yani client sunucuyu bir yolla dinliyor, o zaman kendisine ait bir şey yollandığında sadece bunuda dinleyebilmeli... Sanırım buldum araştırmalarımda deniyorum eğer başarılı olursa burayada yazacağım. Teşekkürler yinede. Bu arada arkadaşlar hala yoruma ve desteğe açıktır konu Php for SEO nun ardından Php for Gcode

şimdi ilk nce basit olarak socket.io nun sitesindeki gibi bir uygulama yap ğren nasıl kullanıldığını daha sonra basit bir üye girişi yap nodejs, session, express ile şimdi sırada sockete sırada socketlerin hangi session ile bağlandığını bulmak lazım bunun için socket connect eventından nce authorization eventına gelir burda bu socketin headerlarını parsele sid i bul senin sessionlarının tuttuğun listede arattır kime ait olduğunu bul bu sockete kullanıcı adı vs değişken ata şimdi socketlerin hangi üyelik üzerinde olduğunu biliyorsun senin yazdığın boardcast olayı bütün hepsine dağıtır yle yapma herkese iletirsen o iş sakat güvenlik 0 :D, socket bağlandığını bir listeye kayıt et disconnect olduğunda listeden çıkart veya zaten bu listeyi io. sockets. foreach tarzında kullanabiliyorsun tam emin değilim koddan byle de istediğin sockete veri gnderebilirsin ayrıntılı bişeyler istersen kod parçaları yollayabilirim, ben bu şekilde aktif olarak kullanıyorum başka yntemler vardır yoktur bilmemem o kadarını :D detCode tarafından 11/Mar/14 03:11 tarihinde düzenlenmiştir Who is detCode?

var clientlist ; io. sockets. on('connection', function Byle her client'i bir objede tutarak halledemez misin? krypt tarafından 11/Mar/14 09:35 tarihinde düzenlenmiştir while (1<2)

var clientlist ; io. sockets. on('connection', function Byle her client'i bir objede tutarak halledemez misin? KrypT reyiz olaya mantıklı yaklaşmış bencede obje ile çzebilirsin. .

arkadaşlar hepinize teşekkür ederim. Sistem malesef daha tecrübeli olduğum mysql üzerinden gitmek zorunda. Çünkü android platformlarıda bağlanacak bu projeye. Bilgim olayan bir şeyi ğreneceğime mysql den çzerim ben bu işi. node-mysql üzerinden gerekli işlemleri yaptırıyorum zaten. Ayrıca io. sockets. on('connection', function { io. sockets. sockets = socket. id; client. on("chat", function ) ;}); olarak kişiler arasında mesaj attırabilirim. 2. bir yol daha buldum. socket. join('oda1deyim'); // 2 kullanıcı arasında bir oda açabiliyorum.io. sockets. in('oda1deyim'). emit ; //baglı kişi dahil odadaki herkese attırabiliyorum socket. broadcast. to('oda1deyim'). emit ; //baglı kişi hariç odadaki herkesede bu şekilde attırabiliyorum. Sanırım aşarım ben bu işi bir sonraki soruma kadar grüşmek üzere. Bu arada emeği geçen arkadaşlara çok çok teşekkürler. Çok sağolun. Edit : Genki ben değilim üstad. Benim nick başka orda sadece reklam amaçlı projelerin tanıtımı için kullanıyorum orayı. Yoksa hiç bir işe yaramaz bi platform sevemedim yıllardır. Erdem tarafından 11/Mar/14 15:48 tarihinde düzenlenmiştir Php for SEO nun ardından Php for Gcode