node.js中使用socket.io

1.客户端

var socket=new io.connect('ws://localhost:8001');
socket.on('transfer',function(data){
    console.log(data);
});
socket.emit('a',{a:'hello',b:'world'});

2.服务器端

var app=express();
var http=require('http').Server(app);
var io=require('socket.io')(http);
        
var data=[2.3,5,6,7];
io.listen(8001);
io.on('connection',function(socket){
    socket.emit('transfer',data);
});

 

socket.io API

1.分组

 

//客户端
socket.emit('some');
//服务端
socket.on('group1', function (data) {
    socket.join('group1');
});

//踢出分组
socket.leave(data.room);

对分组中的用户发送信息
//不包括自己
socket.broadcast.to('group1').emit('event_name', data);
//服务端
io.sockets.in('group1').emit('event_name', data);

另一种分组方式:

 

//客户端
var socket = io.connect('ws://localhost:3000/some')
socket.on('even_name',function(data){
   console.log(data);
});

//服务端
io.of('/some').on('connection', function (socket) {
    socket.on('test', function (data) {
        socket.broadcast.emit('event_name',{});
    });
});

 

2.广播

//给除了自己以外的客户端广播消息
socket.broadcast.emit("msg",{data:"hello,everyone"}); 
//服务器端给所有客户端广播消息
io.sockets.emit("msg",{data:"hello,all"});

 

posted on 2017-03-17 10:36  高石石石  阅读(626)  评论(0)    收藏  举报

导航