Skip to content

Instantly share code, notes, and snippets.

@korayal
Created December 13, 2012 11:11
Show Gist options
  • Save korayal/4275798 to your computer and use it in GitHub Desktop.
Save korayal/4275798 to your computer and use it in GitHub Desktop.
// TCP Kütüphanesi Yükleniyor
net = require('net');
var clients = [];
// TCP Sunucusu Başlatılıyor
net.createServer(function (socket) {
// Bağlanan kullanıcının adı IP adresi ve Portundan oluşturuluyor
socket.name = socket.remoteAddress + ":" + socket.remotePort
// Kullanıcı client listesine ekleniyor
clients.push(socket);
// Kullanıcıya Hoş Geldin Mesajı Gönderiliyor
socket.write("Merhaba " + socket.name + "\n");
broadcast(socket.name + " sohbete katıldı\n", socket);
// Diğer kullanıcılardan gelen mesajlar işleniyor.
socket.on('data', function (data) {
broadcast(socket.name + "> " + data, socket);
});
// Kullanıcı bağlantıyı kestiğinde listeden kaldırıyoruz ve diğer kullanıcıları haberdar ediyoruz
socket.on('end', function () {
clients.splice(clients.indexOf(socket), 1);
broadcast(socket.name + " sohbetten ayrıldı.\n");
});
// Tüm kullanıcılara mesaj gönderme fonksiyonu
function broadcast(message, sender) {
clients.forEach(function (client) {
// Mesajı gönderene yollamamak lazım :)
if (client === sender) return;
client.write(message);
});
// Gönderilen mesajın bir de kaydını tutalım
process.stdout.write(message)
}
}).listen(11337);
// Buralara kadar geldiğimize göre, servisin sorunsuz başladığını da kayıtlara geçelim
console.log("11337 numaralı portta sohbet sunucusu başlatıldı\n");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment