Skip to content

Instantly share code, notes, and snippets.

@khaled0fares
Last active February 15, 2017 08:22
Show Gist options
  • Save khaled0fares/297377bfc58e816ecccb08f9e18a0093 to your computer and use it in GitHub Desktop.
Save khaled0fares/297377bfc58e816ecccb08f9e18a0093 to your computer and use it in GitHub Desktop.
const net = require('net')
const tcp = net.createServer()
tcp.maxConnections = 2
const notTheSame = (sender, receiver) => sender !== receiver
const messageOthers = (sockets,sender,callback)=>{
sockets.forEach((receiver,i)=>{
if(notTheSame(sender, receiver)){
callback(receiver)
}})
}
const prettify = (sockets,sender, message)=>{
sender.on("data", (data)=>{
messageOthers(sockets,sender, (receiver)=>{
message(receiver, data)
})
})
}
const chat = (sender)=>{
sender.setEncoding('utf8')
sockets.push(sender)
prettify(sockets, sender, (receiver, data)=>{
receiver.write(`${data}`)
})
}
const sockets = []
tcp.on("connection", chat)
tcp.listen(3000, ()=>console.log("Listening on port 3000"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment