socket. id kullanma, onun yerine başka bir token kullan, c ookie olarak sakla, her yeni socket bağlantısında bunu doğrulat. diyelim ki adam browserında 3 tane farklı sayfa açtı. bu senin için 3 farklı socket. id demek. bunları aynı odaya koyarsan , üçüne de aynı anda mesaj gnderebilirsin. umarım sorununu tam olarak anlamışımdır.. Ek: co okie'ye soc ket. id ni atabilirsin. bunun için sunucu tarafından socket. id yi tespit edip, clien t'e emit et. RockZs tarafından 23/Ağu/16 16:11 tarihinde düzenlenmiştir

socket. id den bağımsız olarak işlem yapabilirsin. bunun için şahsen sunucu tarafında aşağıdakine benzer bir kod kullanıyordum: socket. emit("check_auth", function { if else }); browser'da ise: socket. on('check_auth', function { if else if }); gibi bir kod vardı. zetle, s o c k e t. i o yeni bir bağlantı açtığında bağlanan c l i e n t'e hemen "check_auth" diye bişey emit edip, oradan gelen yanıta gre ya kullanıcı için yeni bilgiler oluşturuyor, ya da var olan bir kullanıcı ise veritabanından bilgilerini çekip eski oturumunu devam ettiriyordu. bunu ben bağlantı kesildiğinde kullanıcı olaydan etkilenmesin, yeniden bağlandığında eskisi gibi devam edebilsin diye yapmıştım. sen gereken bilgileri c o o k i e'de saklayabilirsin. ben burada socket. id 'i sunucu tarafında kullanmıyor, onun yerine auth_key dediğim rastgele üretilen bişey kullanıyordum. auth_key bünyesinde socket. id 'yi de db de tutuyordum. lazım olunca kullanıyordum. RockZs tarafından 23/Ağu/16 14:48 tarihinde düzenlenmiştir

Aaa cidden Oda yaratmak olabilir her User için Giriş yaptığı tüm client'leri tek bir odaya toplayıp ordan bir komut geldiğinde bu odaya Emit ettirebilirim.. Mantıklı bu sayede sorun olmaz... Tarayıcıda çalıştırmak yerine tüm socketleri Bağlantıları o user üzerine oda acıp o odaya verileri emit ettirmek olabilir. deneyeyim bir.. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocam bunda bunda sıkıntı yok ki. Sen bu Socket'i birden fazla php dosyasında kullanabiliyor musun? Benim için bu nemli yoksa Aynı şekilde bir sistem bende de var ama her sayfada o socket'i kullanamıyorum sorun da o. Express-session diye birşey buldum oturum acılan cihazı session olarak atıyor o session'a emit ediliyor veriler ama kullanışı hakkında biraz araştırıyorum sıkıntıları cok fazla çzemiyorum bunu çzemezsem başka bir yol deneyeceğim. Senin sylediğin iş bende de var Connectiondan sonra Bilgiler diye bir fonksiyona emit ediyorum bilgileri eğer o kullanıcı mevcut ise socket'i değiştiriyorum çünkü eski socket lü kalıyor. Sen muhtemelen tek sayfada socket'i çalıştırıyorsun rneğin Chat vs. Bende bütün yapı socket'e bağlı olduğu için onu tek bir değişkenmiş gibi kullanmam gerekiyor. Socket. Conenction işlemi tek seferli olmalı her sayfada ayrı socket verince Gümlüyor. EDİT : Neden olmaz? diye sorarsın diye yapıyı syleyeyim sana Server tarafı şyle olsun Users=Array ; io. on('connection'function { socket. emit ; socket. on('UserBilgileri', function { var Kontrol=false; for { if } if else }); }); Client de şyle var Socket=io. connect ; Socket. on("Kimsin", function { Socket. emit("UserBilgileri", ); }); Byle Şimdi Ben giriş yaptım Bilgilerim mevcut socket'i değiştim Şuan index. php de olduğumu düşün. Tarayıcıda yeni sekme actım Anasayfa. php actım Sonra tekrar bi yeni sekme Mesajlar. php. 3 Sekmem mevcut şuan Şimdi Server'dan emit kodu gnderdim. Hangi Sekmeye düşecek? Hepsine düşecek mi? Hayır. Neden çünkü Socket bilgileri değişti adam aynı olsa bile. Eski socket gitti yeni socket geldi. Çünkü connection oldu. Eski sekmelerden bi on kodu gnderdim. Eee noldu eski soketten veri gnderdiğim için Server Tarafında bu adamın eski socket bilgileri duruyor bu da kim? Diye sormaz mı Server. Sorar çünkü adam kim olduğunu bilmiyor... Gibi gibi... Yani şyle olsa. Bir adet var Socket=io. connection ; ve ben bu Socket denen illeti Bütün sayfalarda cağırabilsem. Anasayfa, Mesajlar, index. php de de Socket aynı sonuçta. Emit de aynı socket On methodu da aynı socket içinde olacağı için Tüm browser de çalışacak... Ama nasıl olacak işte bu iş... Lanet Facebook nasıl yapıyor acaba. mantık ne. Aslında Session yada Cookie'ye Socket'imi atabilsem Ordan Sessionu tüm sayfalarda çağırıp çağırıp kullanırım. Bu Şuna benziyor. Java da Bean diye bi class olsun yada Properties. Her neyse. Biz Bu Class'a Socket'i entegre ettiğimiz zaman static veririz. daha sonra bu static veriyi her class da aynı şekilde kullanmaya devam ederim... Ama Web tarafında nasıl olacak bu iş. Bi türlü çzemedim... Yani biz Java C# vs vs OOP programlama dillerinde bir değişkene tek bir sefer değer atadıktan sonra tüm projede o değişkeni kullanabiliyoruz ya. Heh işte bana bu lazım. MhmdAlmz tarafından 23/Ağu/16 15:50 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocalarım Şyle bir sorunum var. benim bi Script kodum var ve bunu tarayıcının bütününde çalıştırmak istiyorum tıpkı Session Cookie gibi. Yani tek bir sefer Socket'i tanımlayıp bütün browser de çekmek istiyorum bu Session'u. Ama nasıl olacak. Socket.io kullanıyorum. Tüm sayfalarda Socket bağlantısı yapıyorum Socket'i kullanmak için. Byle olunca da her sayfa açıldığınca Connect olduğu için socket değişiyor. Byle olunca da sıkıntı büyüyor adama 1 veri gnderirken son socket'e gnderdiğim için tum tarayıcıda veri emit edilmiyor. Facebook veya Twitter gibi düşünün. Herhangi bir sayfada da olursanız Mesaj/bildirim vs geldiği anda tüm sayfalarda güncelleme oluyor. Bende de bütün sayfalarda farklı bir connection olduğu için bütün sayfalara tek seferde emit edemiyorum. Şyle bir mantık oluyor ama kullanışlı olmayacak ve saçma bir mantık gibi geldi. Bir User Array'im olsun Bu array içinde UserBilgileri olsun User Bilgilerin içinde ise Sockets olsun yani User . UserBilgiler. Sockets olsun ve ben bütün connection'ları bu şekilde Biriktirip mesaj veya bildirim geldiği anda hepsine tek tek emit mi ettireyim? Bu şekilde çalışır ama Hantal çalışır ID'lerde çakışma olabilir. vs vs birsürü sorun çıkabiliyor byle bir mantık kurgulayınca. Facebook veya Twitter bu işi nasıl yapabilir? Client tarafında nasıl tek seferde çalıştırabiliyorlar? Client tarafında tek socket tanımlayıp her sayfada bunu nasıl çağırıp işlem yaptırabiliyorlar? Bilginiz var mıdır? Bu sorunu nasıl çzebilirim? Socket'i Cookie içerisine atabilirsem her seferinde Cookie'yi çağırıp içindeki socket ile işlem yaptırırım ama nasıl olacak? Cookie ye Socket'i nasıl aktaracağım? 4-5 gündür uğraşıyorum bir çzüm üretemedim. Yardımcı olabilecek birileri var mı? Byle bir sorunla karşılaşanlar bizimle de paylaşırsa çok iyi olur :( Iyi forumlar Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!