June 27, 2014

Realtime Chat - Part II

实时聊天室之下篇

我們就寫個 app 簡單的寫信息推送到所有用戶(包括自己也看到)

Project 架构

.
├── app.js
├── node_modules
├── package.json
└── index.html

这个 Project 的文件在Gist:https://gist.github.com/stretchgz/26274e15499077bbce90

单独客户端 -> 服务器 -> 所有的客户端

游览器的 form 发信息,通过 socket 传到服务器,服务器再广播到所有连接的客户端。

Server
├── A
├── B
├── C
└── D

當 A 説話時,服務器收到信息后複製這段信息推送到所有的用戶,上面的例子就是 A、B、C 還有 D。

廣播方式

推送到所有人,自己除外

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.broadcast.emit('user connected');
});

推送到所有人

var io = require('socket.io')();
io.sockets.emit('an event sent to all connected clients');