我可以通过 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 将文件上传到服务器吗?的主要内容,如果未能解决你的问题,请参考以下文章

Socket.io 是聊天模块的理想选择吗

Socket.io - 客户端断开连接后手动重新连接

我如何连接到 Node.js 中的星号

我可以通过 node.js 中的 socket.io 将文件上传到服务器吗?

node.js 中的 Guid 类

无法通过递归调用node.js中的函数从promises获得响应