安装
npm install socket.io
Express
var app = require('express')()
var serve = require('http').Server(app)
var io = require('socket.io')(serve)
server.listen(3000,127.0.0.1)
//socket.io方法
io.on('connection',function(sockets){
//建立连接
})
服务端
1.获取客户端数据
io.on('connection',function(socket){
console.log('建立连接')
//接收数据
socket.on('adddata',function(data){
})
//主动发送数据(谁发的,发给谁)
socket.emit('removes',{
})
// 主动发送数据(群发)
io.emit('removes',{
})
})
2.分组广播
io.on('connection',function(socket){
console.log('建立连接')
//获取连接地址
// socket.request.url 可以获取房间号roomid
socket.join(roomid) //加入房间
socket.leave(roomid) //离开房间
socket.on('add',function(data){
//广播给 房间内的用户
io.to(roomid).emit('addCart','abchdhde')
//广播给 房间内的用户(不包括自己)
socket.broadcast.to(roomid).emit('addCart','abchdhde')
})
})
//var url = require('url')
// url.parse('http:127.0.0.1',true) 解析url
//客户端需要传入房间号
var socket = io.connect('http://127.0.0.1:3000?roomid=1')
客户端
1.给服务器发送数据
//客户端引入 http://127.0.0.1:3000/socket.io/socket.io.js
socket.emit('adddata',{ my: 'data'})
2.接收服务器返回的数据
var socket = io('http://127.0.0.1:3000')
socket.on('news',function(data){
})
服务器API速查
//socket.io方法
io.on('connection',function(sockets){
// console.log('建立连接');
sockets.on('newsMsg',function({userId,msg}){
console.log(userId);
sockets.emit(userId,msg)
})
console.log(sockets.id);
sockets.emit('oldmsg','这是一条服务端消息')
})
//给指定的客户端发送消息
io.sockets.socket(socketid).emit('String', data)
// 连接成功,开始监听
sockets.on('message',function(event){
console.log('Received message from client!',event)
})
// 连接失败
sockets.on('disconnect',function(){
clearInterval(interval)
console.log('Server has disconnected')
})
// 广播给当前房间除了自己以外的所有人
socket.broadcast.to(roomId).emit('msg', {
// take somethings
})
// 广播给当前房间中自己
socket.emit('msg', {
// take somethings
})
// 广播给当前房间的所有人
socket.to(roomId).emit('msg', {
// take somethings
})