我可以通过 node.js 中的 socket.io 将文件上传到服务器吗?
Posted
技术标签:
【中文标题】我可以通过 node.js 中的 socket.io 将文件上传到服务器吗?【英文标题】:Can I upload a file to server by socket.io in node.js? 【发布时间】:2011-08-23 20:21:55 【问题描述】:我有一个 socket.io 客户端,socket.io 服务器在 node.js 中监听它。我想通过socket.io
将文件上传到服务器。因为我的socket.io
客户端在 apache 下。 socket.io
服务器在 Node.js 中。我想在 Node.js 中编写文件上传代码。但是我如何将文件数据发送到监听套接字的node.js。
我已尝试使用 Node.js 服务器上传文件。此链接在此处,但此代码不使用 socket.io
与此。但我原来的项目是使用socket.io
。
Uploading a file in node.js by formidable
如何使用socket.io
服务器做到这一点?
【问题讨论】:
【参考方案1】:自 2012 年 7 月 3 日起,检查的答案无效。
自己阅读this tutorial on NetTuts。 本教程使用 node.js 和 socket.io 上传文件。
【讨论】:
您知道我们可以上传的最大文件大小 Node/socket.io 是基于流的,请谨慎对待 - 但应该没有限制。【参考方案2】:我为此编写了一个模块。
socket.io-stream
【讨论】:
你知道如何制作使用它的ios-client吗,thanx。 使用这个库到目前为止还可以,我正在使用最新的 JSPM 版本,它不再工作了。【参考方案3】:这是我编写的一个 npm 模块,它将在您的应用程序中实现 Socket.IO 文件上传:
Socket.IO File Upload
您需要为模块提供的只是您的中间件、套接字以及用于上传文件的文件输入或放置区。如果你给它一个目录,它也会保存文件。该模块负责其余的工作。
【讨论】:
@Github 向下滚动到底部有一个工作示例。【参考方案4】:2014 年 5 月发布 1.0 版 socket.IO,binary support has been added to the library。
Socket.IO 现在支持发射 Buffer(来自 Node.JS)、Blob、ArrayBuffer 甚至是文件,作为任何数据结构的一部分
这都是由于engine.io提供的低级api。
【讨论】:
【参考方案5】:以下是通过 socket.io 发送文件的示例: http://liamkaufman.com/blog/2012/02/11/12-pushing-files-to-the-browser-using-deliveryjs-socketio-and-nodejs/
【讨论】:
OP 想要将文件发送到服务器,而不是本例中的客户端。 该示例中的库 (Delivery.js) 声称支持双向文件传输。以上是关于我可以通过 node.js 中的 socket.io 将文件上传到服务器吗?的主要内容,如果未能解决你的问题,请参考以下文章