[英]How can I emit events to connected sockets using socket.io from within my Express 4 routes?
[英]How can I send an image using sockets to save in my NodeJS backend using just socket.io and multer
我有一个应用程序,用户可以在其中上传一些信息和一些图片,至于使用socket.io可以轻松完成信息,但是我在图片方面遇到了一些麻烦。 我知道有类似这样的第三方库,但是对我来说,如果我只是使用普通的POST请求,那么对于某些简单的事情来说确实显得过多。 (当然,如果我错了,我很乐意使用该库,但只是想知道)
所以我如何在我的服务器端进行设置
// Socket IO Stuff
io.on("connection", function(socket){
var upload = multer({
dest: path.join(__dirname, '/public')
});
console.log("Socket has connected");
socket.on("disconnect", function(){
console.log("Socket has disconnected");
});
socket.on("component-submit", function(values){
var tempValues = values;
upload.single(tempValues.file);
});
});
在我的客户端HTML上,我上传了一个简单的文件
在我的客户端JS上我有这样的代码
$("#component-submit").click(function(){
values = {
componentName: $("#component-name").text(),
textValue: $("#text-area").val(),
file: $('#file').prop('files')[0]
}
socket.emit("component-submit", values);
})
在后端,我确实得到了这个对象,并且文件值中有一些东西,但是什么也没有保存。
我不能建议方法tcp或websocket不是文件上传的正确方法。 特别是大文件。 尝试http发布方法。 但是,如果必须使用这种方式,backendresponse.file.toString('binary'); 有了这个你的缓冲区转换为二进制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.