我创建了一个 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 );
});
提前致谢, 芥末造型师