クライアント アプリに ExtJS 4.1.1 を使用しています。ファイルをソケット サーバーにアップロードする必要があります。ここで説明されている WebSocket 拡張機能を使用して、ソケット サーバーにメッセージを送信できることはわかっています。しかし、これがファイルで機能するかどうかはわかりません。
以前にそのようなタスクに直面したことがある人からのアドバイスをいただければ幸いです。ExtJS WebSocket 拡張機能を使用して実行する必要はありませんが、クライアント側で ExtJS を使用して実行する必要があります。私はソケット サーバーに Netty を使用していますが、これは重要ではないと思います。
アップデート:
@Ee-P の推奨に従って、この拡張機能を使用してみました。ただし、その拡張機能は例外をスローしますUncaught TypeError: Cannot read property 'size' of undefined
。サーバー側でファイルの詳細を受け取ることはできますが、サーバー側でファイル自体にアクセスする方法がわかりません。実際のファイルが送信されたのか、ファイルの詳細だけなのかはわかりません。@Ee-P はラッパー クラスに言及しました。私が行ったのは、JS ファイルと Mootools クラスをインクルードすることだけです。そして、私のコードには次のものがあります。
if(!WebSocketFileTransfer.supported()) {
console.log('WebSocket File Transfer is not fully supported by your browser.');
return;
}
var transfer = new WebSocketFileTransfer({
url: 'ws://localhost:8087/ws',
file: file,
blockSize: 1024,
type: WebSocketFileTransfer.binarySupported() ? 'binary' : 'base64',
type: 'binary',
progress: function(event) {
console.log('File upload in progress');
},
success: function(event) {
console.log('File successfully uploaded.');
}
});
transfer.start();
私が間違っているかもしれないことや代替案についての考えは非常に高く評価されます.