私はノード初心者です。私は、動的に実行される各アップロードの後に進行状況バーとコールバックを持つformidableを通してマルチファイルイメージのアップロードを設定しようとしています。アップロードが完了したら、すべての画像を同じページに読み込みます。アップロードが開始された後に、ブラウザとやりとりするためにsocket.ioを使用する必要があることを理解しています。 Formidableには、「進捗状況」のイベントリスナーがあります。アップロードバーを作成するために受け取ったバイトを受け取るためにクライアントサイドスクリプトが必要です。ファイルがアップロードされた後、私はsocket.ioがイメージがアップロードされた場所のURLをクライアントに渡して、クライアントがイメージをロードしてDOMに動的に追加できるようにします。ここに私がこれまで持っていたコードがあります。Node.jsのsocket.ioに大量のファイルアップロードを接続する方法
私の質問は、クライアントにブロードキャストできるように、「進捗状況」のイベントリスナー内でsocket.ioコードをどのように構造化するのですか?ここで
は、私が何を言っているかをお見せするためにいくつかの緩い擬似コードです:
//formidable code:
app.post('/new', function(req,res){
var form = new formidable.IncomingForm();
form.addListener('progress', function(bytesReceived, bytesExpected){
//Socket.io interaction here??
});
form.uploadDir = __dirname + '/public/images/';
form.on('file', function(field, file) {
//rename the incoming file to the file's name
fs.rename(file.path, form.uploadDir + "/" + file.name);
console.log(form.uploadDir + "/" + file.name);
})
});
//socket.io code
io.sockets.on('connection', function (socket) {
socket.on('upload', function (msg) {
socket.broadcast.emit('progress', bytesReceived);
});
});
いくつかの進歩があります。 socket.ioクライアントにブロードキャストする方法は 'io.sockets.emit( 'bytes'、bytesReceived)'です。 – mistersoftee