forked from coolaj86/telebit.js
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var net = require('net');
 | 
						|
var server = net.createServer(function (conn) {
 | 
						|
  function echo(chunk) {
 | 
						|
    conn.write(chunk);
 | 
						|
    if (chunk.length <= 10 && /\b(q|quit|end|cancel)\b/i.test(chunk.toString('utf8'))) {
 | 
						|
      conn.end();
 | 
						|
      conn.removeListener('data', echo);
 | 
						|
    }
 | 
						|
  }
 | 
						|
  conn.on('data', echo);
 | 
						|
  // NOTE: early versions of telebit do not support a 'connection' event
 | 
						|
  // and therefore will say hello after the first message from the client
 | 
						|
  conn.write(
 | 
						|
    "[Echo Server] Hello! I'm an echo server.\n"
 | 
						|
  + "[Echo Server] I try to be your friend but when I see things like q|quit|end|cancel, I give up.\n"
 | 
						|
  );
 | 
						|
});
 | 
						|
server.on('error', function (err) {
 | 
						|
  console.error("[echo server]");
 | 
						|
  console.error(err);
 | 
						|
});
 | 
						|
server.listen(process.argv[2] || 3000, function () {
 | 
						|
  console.info("Listening on", this.address());
 | 
						|
  console.info('ctrl+c to cancel');
 | 
						|
});
 |