Socket.io-file-client is module for uploading file via Socket.io.
Major Changes from 1.x to 2.x
Socket.io-file 1.x used Binary String to send files. Binary String is little bit slower than direct Binary writes, and also server used fs.write, not writable stream.
Recently, FileReader.readAsBinaryString() was deprecated, so I updated Socket.io-file to use ArrayBuffer(Object for manipulate Binary Data directly from JavaScript) instead of Binary String.
Also, newer version has much more functionalities, like Server-side MIME type checking, File size limitations.
Even you can configure the size of each transmission(chunk) any value you want, higher value gives you faster upload.
Array SocketIOFileClient.upload(FileList files, Object options) (New from 2.0.1)
Upload file(s). First argument must be or FileList object, other wise refuse uploads. If it has multiple files(with multiple attribute), it uploads all at once.
Returns array that contains upload ids as values.
Available options are:
String to: If server has multiple upload directories, client must be set the directory where to upload.
Object data: An arbitrary data object that will be passed to the server side events.
SocketIOFileClient SocketIOFileClient.on(String evName, function fn)
Attach event handler to SocketIOFileClient. Possible events are described later part.
SocketIOFileClient SocketIOFileClient.off(String evName[, function fn])
Detach event handler from SocketIOFileClient. If function is undefined, removes all event handlers attached on that event.
Destroy all resources about SocketIOFileClient. Use this method for saving more resources from client side. After use this, you can't upload file anymore.
void SocketIOFileClient.getUploadInfo(void)
Get array of currently uploading files. Keys are upload id, values are object that contains information of uploading files.
bool SocketIOFileClient.isDestroyed (ADDED 2.0.2)
Returns true after destroyed by calling destroy method or server force to close.
Events
SocketIOFile provides these events. Some of property is slight different than servers, like wrote -> sent.
ready (ADDED ON 2.0.12)
Fired on ready to upload files. Everytime you create new SocketIOFileClient object, it receives some upload information from server like chunkSize, mimeType like other things.
So if you send the file before sync those meta data, your upload won't work properly. Personally, I recommend create single SocketIOFileClient object first, and make upload after ready events fired.
disconnected (ADDED ON 2.0.2)
Fired when server forcely send disconnect order. After it fires, you can't send file via socket.io-file.
loadstart (ADDED ON 2.0.13)
Fired right before load the file from browser. After browser load the file you selected, it will start uploading and trigger "start" event.
progress (ADDED ON 2.0.13)
Keep firing while browser load your file. This will help to implement loading system that how much data loaded before send.
Number loaded: Bytes of loaded
Number total: Total byts of file
start
Fired on starting file upload. This means server grant your uploading request and create empty file to begin writes. Argument has:
String name: Name of the file
Number size: Size of the file(bytes)
String uploadTo: Directory that where to writing.
Object data: The arbitrary data object that was passed to the upload()-function.
stream
Fired on getting chunks from client. Argument has:
String name
String uploadTo
Number size
Number sent: Bytes of sent
Object data: The arbitrary data object that was passed to the upload()-function.
complete
Fired on upload complete. Argument has:
String name
String mime: MIME type that server recognized.
Number size
Number wrote
Number estimated: Estimated uploading time as ms.
Object data: The arbitrary data object that was passed to the upload()-function.
abort
Fired on abort uploading.
String name
String uploadTo
Number size
Number sent
Object data: The arbitrary data object that was passed to the upload()-function.
error
Fired on got an error.
First argument: Error object.
Second argument: Object with the following properties:
String uploadId
String name
Number size
String type
String uploadTo
Object data: The arbitrary data object that was passed to the upload()-function.
FAQ
Upload 0 bytes
Try to upload after "ready" event fired.
Browser Supports
This module uses FileReader API with ArrayBuffer, so make sure your browser support it.
The npm package socket.io-file-client receives a total of 127 weekly downloads. As such, socket.io-file-client popularity was classified as not popular.
We found that socket.io-file-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 1 open source maintainer collaborating on the project.
Package last updated on 12 Nov 2017
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.