實例中用到了(實例在Windows XP下運行):Node.js、Socket.IO、Express.js、jade、stylus
先在hosts文件中添加兩行規則,關於兩個子域的:sub1.localhost、sub2.localhost
使用socket.io
1: var exp = require('express');
2: var app = exp.createServer();
3:
4: global.socket = require('socket.io').listen(app);
5: global.socket.set('log level', 1);
6: global.socket.set('transports', [ 'websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);
加載配置,創建子域的應用
1: app.use(exp.vhost('sub1.' + global.host, require('./subdomains/sub1')));
2: app.use(exp.vhost('sub2.' + global.host, require('./subdomains/sub2')));
3:
4: require('./app/config')(app, exp);
5: require('./app/server/router')(app);
6: require('./app/server/modules/chat-socket');
chat-socket.js模塊
1: module.exports = function() {
2:
3: global.socket.of('/chat').on('connection', function(socket) {
4: //todo
5: });
6: }();
前台頁面使用socket.io.js建立連接
1: socket = io.connect('/chat');
2: socket.on('status', function (connections) {
3:
4: });
5: socket.on('user-ready', function (data) {
6:
7: });
8: socket.on('user-message', function (data) {
9:
10: });
11:
12: socket.on('user-disconnected', function (data) {
13:
14: });
15:
16: //向后台發送消息
17: socket.emit('user-ready', {name : 'xxx'});
運行完整的示例node app.js即可,下載示例源碼>>
本文參考: