nodejs koa 使用 websocket

1,540 阅读1分钟

笔记:

前端

let count = 1;
let ws = new WebSocket("ws://127.0.0.1:8888/websocket");
ws.onopen = function(evt) {
    console.log("Connection open ...");
    console.log(evt);
    // ws.send("Hello WebSockets!");
};

ws.onmessage = function(evt) {
    console.log("后端发来的数据: " + evt.data);
    if (count++ == 10) ws.close();
};

ws.onclose = function(evt) {
    console.log(evt);
    console.log("Connection closed.");
};

ws.onerror = function(evt) {
    console.log(evt);
    console.log("error!!!");
};

后端

const websockify = require('koa-websocket')
const route = require('koa-route')
let app = websockify(new Koa)
app.ws.use(
    route.all('/websocket', function (ctx, next) {
        ctx.websocket.send("连接成功");
        // 做个定时发送数据给前端
        setInterval(() => {
            ctx.websocket.send(JSON.stringify({
                id: 11111111,
                time: new Date().toLocaleString()
            }));
        }, 1000)
    })
)
app.listen(8888, () => {
    console.log("----- 服务器启动在8888端口 ------")
})

实现了的截图

我是在vue中用的

前端截图

后端截图

访问成功的截图