安装
npm i socket.io
socket连接可以跟http同端口。
单独一个文件夹socket下文件index.js,作为socket任务处理
const IO = require('socket.io')
let hashName = new Array()
function creatSocket(app) {
const io = IO(app);
// socket连接
io.on('connection', (socket) => {
console.log(socket.id)
socket.on('setRoom', function (data) {
console.log(data);
var name = data.roomId;
// // 储存上线的用户
hashName[name] = socket.id;
});
socket.on('chat message', (msg) => {
console.log('服务器收到了消息:')
console.log('message: ' + msg);
io.emit('chat message', { hello: '你是谁' });
});
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
}
module.exports = creatSocket
在项目的主文件index.js中
const server=require('http').createServer(app.callback())
const createServer=require('./socket')
const static = require('koa-static')
const path = require('path')
//————————————————————
app.use(static(path.join(__dirname, './static')))
//————————————————————
createServer(server)
server.listen(3000)