node.js websockets 服务器发送图像

时间:2021-05-20 15:02:01

标签: javascript node.js websocket ws

我创建了一个 websocket 服务器,客户端将图像发送到该服务器。连接已建立,但我的服务器无法获取客户端的图像。

我的this.getField("sidewalk").required = true; 不正确吗?还是我的服务器有问题?

在 handleMessage() 函数中,我试图获取发送的图像并将其保存在本地硬盘上。

这是我的 server.js

websocket.send()

这是我的 client.js

const express = require('express');
const app = express();
const path = require('path');

app.use('/public', express.static(__dirname + '/public'));
app.use('/client', express.static(__dirname + '/client'));

app.get('/', (req, res) => {
    console.log('express connection');
    res.sendFile(path.join(__dirname, '/public/index.html'));
});

app.get('/client', (req, res) => {
    res.sendFile(path.join(__dirname, '/public/client.html'));
});

const http = require('http');
const server = http.createServer(app);
let PORT = process.env.PORT;
if (PORT == null || PORT == '') {
    PORT = 3000;
};

const fs = require('fs');
const ws = require('ws');
const wsServer = new ws.Server({ server: server});


const handleMessage = (data) => {
    const [action, payload] = data.split(',');
    const imageData = Buffer.from(payload, 'base64');
    console.log(action, payload);

    const imageHandle = fs.createWriteStream('screenshot.jpg');
    imageHandle.write(imageData);
    imageHandle.end();

    console.log(`Saved image (${imageData.length} bytes)`);
};

wsServer.on('connection', (client) => {
    client.send("I'm connected to you!");
    console.log('new client connected!')
    wsServer.on('request', (req) => {
        console.log(req);
        handleMessage(req);
    });
    wsServer.on('message', (message) => {
        console.log(message);
        handleMessage(message);
    });
    server.on('upgrade', (request, socket, head) => {
        wsServer.handleUpgrade(request, socket, head, socket => {
          wsServer.emit('connection', socket, request);
        });
    });
});

server.listen(PORT, () => {
    console.log('Websocket server started at ' + PORT );
});

提前致谢, 芥末造型师

0 个答案:

没有答案