Created
December 13, 2012 11:11
-
-
Save korayal/4275798 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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