var io = require("socket.io").listen(800); io.set('log level', 1); var text = "OP is a "; function endsWith(str, suffix) { return str.indexOf(suffix, str.length - suffix.length) !== -1; } io.sockets.on("connection", function(socket) { process.stdout.write("\n[someone joined]\n"); socket.broadcast.emit("chat", "[someone joined]"); socket.emit("chat", text); socket.on("chat", function(addition) { text += addition; process.stdout.write(addition); if (endsWith(text, "^^")) { text = ""; io.sockets.emit("reset", "[reset]"); } else socket.broadcast.emit("chat", addition); }); socket.on('disconnect', function() { process.stdout.write("\n[someone left]\n"); io.sockets.emit("chat", "[someone left]"); }); });