vue-socket.io-koa2

server

const Koa = require('koa');

const app = new Koa();

// ----
// app.use
// router.get|post
// 这些写在中间
// ----

const server = require('http').Server(app.callback());
const io = require('socket.io')(server);
io.on('connection', function (socket) {
    socket.emit('connect', 'ok');
    socket.on('connect',  (data) => {
    });
});

_.emit = (sid, action, data) => {
    if (!sid || !io.sockets.sockets[sid]) return;
    io.sockets.sockets[sid].emit(action, data);
}

server.listen(_.config.server.port, function () {
    _.debug('http://localhost:' + _.config.server.port, _.env);
});

====================
'/api/import': {
        post: async (ctx, next) => {
            const sid = ctx.query.sid || '';

            _.emit(sid, 'imprst', `---- 开始导入 ----`);

            _.emit(sid, 'imprst', `---- 导入完成 ----`);
        }
}

client

main.js

import VueSocketio from 'vue-socket.io';
Vue.use(VueSocketio, config.apiUrl);

===============

import.vue

export default {
    data() {
        return {
            uploadUrl: config.apiUrl + '/api/import?sid=' + this.$socket.id,
            rstList: []
        }
    },
    sockets:{
        connect: function(){
        },
        imprst: function(val){
            this.rstList.push(val);
        }
    },
    mounted(){
        this.$socket.emit('connect', this.$router.id);
    },
}

 

转载于:https://my.oschina.net/qiongtaoli/blog/1913928

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值