server.js 2.41 KB
var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io'); // 加入 Socket.IO

var server = http.createServer(function(request, response) {

  console.log('Connection');
  var path = url.parse(request.url).pathname;
  
  switch (path) {
    case '/':
      response.writeHead(200, {'Content-Type': 'text/html'});
      response.write('Hello, World.');
      response.end();
      break;
    case '/socket.html':
      fs.readFile(__dirname + path, function(error, data) {
        if (error){
          response.writeHead(404);
          response.write("opps this doesn't exist - 404");
        } else {
          response.writeHead(200, {"Content-Type": "text/html"});
          response.write(data, "utf8");
        }
        response.end();
      });
      break;
    default:
      response.writeHead(404);
      response.write("opps this doesn't exist - 404");
      response.end();
      break;
  }
});

server.listen(8001);
io.listen(server);  // 開啟 Socket.IO 的 listener

var serv_io = io.listen(server);
/*serv_io.sockets.on('connection', function(socket) {
    //socket.emit('message', {'message': 'hello world'});
		setInterval(function() {
			socket.emit('date', {'date': getRandomInt(0,90)});
		  }, 1000);
		
		// 接收來自於瀏覽器的資料
		socket.on('client_data', function(data) {
			process.stdout.write(data.letter);
		});
});*/


// Load the TCP Library
net = require('net');

// Keep track of the chat clients
var clients = [];

// Start a TCP Server
net.createServer(function (socket) {

 
  // Put this new client in the list
  clients.push(socket);

  // Handle incoming messages from clients.
  socket.on('data', function (data) {
    broadcast(data, socket);
	
		serv_io.emit('date', {'date': 
			data.toString('utf8')	
		});
	/*
	setInterval(function() {
		serv_io.emit('date', {'date': 
			data.toString('utf8')	
		});
	}, 1000);
	*/
  });
  
  // Send a message to all clients
  function broadcast(message, sender) {
    clients.forEach(function (client) {
      // Don't want to send it to sender
      if (client === sender) return;
      client.write(message);
    });
    // Log it to the server output too
    process.stdout.write(message)
  }

}).listen(5200);



  

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}