Node.js + socket.io 简单的多房间聊天

2017-10-24 18:03:38

简单的例子参考


 只要调用 io.to(room).emit  发送到不同的房间       room指定房间   


demo地址:http://phpblogs.com/down/socketdemo.zip


node环境参考前面文章


服务端


var app = require('express')();

var http = require('http').Server(app);

var io = require('socket.io')(http);

var URL = require('url');



app.get('/', function(req, res){

  

  res.sendFile(__dirname + '/index.html');

});


io.on('connection', function(socket){

  console.log('a user connected');

  

  var url = socket.request.headers.referer;

  console.log(url);

  

  var room = '';

  var user='';

  var p = URL.parse(url); 

  var str = p.query.split("=");

  room = str[1];

  console.log(room);

  

  socket.on('join', function (userName) {

    user = userName;

console.log(userName);

socket.join(room);    // 加入房间   

// 通知房间内人员

io.to(room).emit('chat message',user+'加入了房间'+ room);  

console.log(user+'加入了房间'+ room);

  });


  socket.on('chat message', function(msg){

//console.log('user disconnected');

//console.log('message: ' + msg);

io.to(room).emit('chat message', msg);

 });

  

  

});


http.listen(3000, function(){

  console.log('listening on *:3000');

});


客户端