June 20, 2014

Realtime Chat - Part I

这篇文章就介绍一下架个 socket.io 服务器

基本要求

安装 Socket.IO

npm install socket.io

使用 Socket.IO

服务器:app.js

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(3000);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.on('connection', function (socket) {
  // 推一个事件到客户端 (游览器)
  socket.emit('news', { hello: 'world' }); 
  
  // 接收到一个来自客户端独特事件: `my other event` 
  socket.on('my other event', function (data) {
    console.log(data); // 简单的在后台看看而已
  });
});

客户端:index.html

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

运行 Node 服务器

node app.js

游览器就打开 http://localhost:3000

扩展阅读:

  1. 如何使用Nginx 反代理就看这里
  2. Socket.IO 官方文件