
-----------------------
Merhaba.
Php ve nodeyle ilk denememi yapayım dedim ve sitede online olanları nasıl gösterebilirim diye düşünmeye başladım ama düşünmeye başlayalı epey olmasına rağmen sonuca ulaşamadım.
index.php'de ilgili kod şu şekilde;
<script type="text/javascript" src="http://localhost:3000/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect("http://localhost:3000"); /* sokete bağlandım */
socket.on("soketcevap",function(data){ /* soketten gelenler */
alert(data);
});
$(function(){ /* id ve nicki sokete gönder */
socket.emit("data1",{id:"<?php echo $_SESSION["uye"]["id"]; ?>",nick:"<?php echo $_SESSION["uye"]["nick"]; ?>"});
});
</script>server.js de şu şekilde;var io = require("socket.io").listen(3000);
io.sockets.on("connection",function(socket){
socket.on("data1",function(data){
io.sockets.emit("soketcevap", data.nick);
});
});Yaptığım şey, yapmak istediğim şeyle alakasız biliyorum ama yukardaki kod sorumu daha anlaşılabilir şekilde sormama da yardımcı olacağı için ekledim yukarı.Php sessionda tutulan üye id'si ve nickini server.js'ye gönderdim, ordan da sayfaya son giriş yapan üyenin nickini bağlı olan tüm kullanıcılara gönderdim ve test ettim bağlı olan tüm kullanıcılarda sayfayı son çalıştıran üyenin nickini ekrana basıyor.
Online üyeleri gösterme konusunda anlamadıklarım ise şöyle:
io.sockets.on("connection",function(socket){..});
Burdaki socket değişkeninin işlevi tam olarak nedir?
Soketteki tüm bilgiler bunda tutulur ve ben istediğim zaman burdaki tüm verilere erişebilir miyim, yoksa sadece veri akışı sağlamak için geçici olarak mı iş görür?
Eğer socketteki bilgilere ulaşamıyorsam bir dizi oluşturup (online üye örneğinden hareketle) üyelerin idlerini o dizide tutup, php sayfalara bu diziyi mi döndürmem gerekir?
Eğer son sorunun cevabı evet ise, üye her sayfa değiştirdiğinde sayfadan çıkarken disconnect (ve diziden idsini sil), yeni sayfaya geçişinde de server.js'deki diziye tekrar mı id'sini yazmam gerekir?
Son sorunun cevabı hayır ise (ki umarım hayırdır çünkü herkes sayfa değiştirdiğinde tüm bağlı sayfalara veri göndermek çok mantıklı gelmedi bana) üyenin disconnect olduğunu nasıl anlarım? (çünkü bir şekilde diziden idsini çıkarmam gerek)
Yardımlarınız için şimdiden çok teşekkür ederim.
Edit: Dizide idlerin tutulma sebebi: online üyeleri, online olan üyeler listesi şeklinde değil de konuların listelendiği sayfada, konu başlıklarının bi köşesinde "bu konuyu açan üye şu an online" gibi bi not düşmek istiyorum.
.
.




