Java を使用して Websocket ファイル転送機能を開発する方法
インターネットの発展に伴い、ファイル転送は日常の仕事や生活に欠かせないものになりました。 Websocket は、ブラウザとサーバーの間に永続的な接続を確立する通信プロトコルとして、リアルタイムおよび双方向送信の特性を備えているため、ファイル転送に最適です。この記事では、Java を使用して Websocket ファイル転送機能を開発する方法と、具体的なコード例を紹介します。
1. Websocket サーバーの作成
ファイル転送機能を実装するには、まずクライアントのリクエストを受信して処理する Websocket サーバーを作成する必要があります。以下は、Java の Tomcat フレームワークを使用して Websocket サーバーを作成するためのサンプル コードです。
@ServerEndpoint("/upload") public class FileUploadServer { @OnOpen public void onOpen(Session session) { System.out.println("Client connected: " + session.getId()); } @OnMessage public void onMessage(ByteBuffer byteBuffer, Session session) throws IOException { Path path = Paths.get("uploads", session.getId() + ".jpg"); Files.write(path, byteBuffer.array()); System.out.println("File uploaded: " + path.toString()); } @OnClose public void onClose(Session session) { System.out.println("Client disconnected: " + session.getId()); } @OnError public void onError(Throwable e) { e.printStackTrace(); } }
上記のコードでは、@ServerEndpoint
アノテーションを使用して Websocket サーバーに注釈を付け、クライアント アクセスを指定します。 URL は /upload
です。サーバー側には、クライアント接続の処理、ファイル データの受信、切断、例外の処理をそれぞれ行うための 4 つのメソッドが用意されています。このうち、onMessage
メソッドは、ファイルデータを受信したときに呼び出され、ファイルを uploads
フォルダーに保存し、クライアントの ID をファイル名として使用します。
2. Websocket クライアントの作成
次に、ファイル データをサーバーに送信するための Websocket クライアントを作成する必要があります。以下は、Java の JavaFX フレームワークを使用して Websocket クライアントを作成するためのサンプル コードです。
public class FileUploadClient extends Application { private static final String SERVER_URI = "ws://localhost:8080/upload"; private WebSocketClient client; public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { try { URI uri = new URI(SERVER_URI); client = new WebSocketClient(uri) { @Override public void onOpen(ServerHandshake handshakedata) { System.out.println("Connected to server"); } @Override public void onMessage(String message) { System.out.println("Received message: " + message); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("Disconnected from server"); } @Override public void onError(Exception ex) { ex.printStackTrace(); } }; client.connect(); } catch (URISyntaxException e) { e.printStackTrace(); } } public void uploadFile(Path path) throws IOException { byte[] bytes = Files.readAllBytes(path); client.send(bytes); System.out.println("File uploaded: " + path.toString()); } }
上記のコードでは、サーバー側 URL ws:// に接続することにより、JavaFX を使用して単純なインターフェイスを作成しました。 localhost :8080/upload
であり、サーバーとの通信のさまざまな段階を処理するクライアントの 4 つのメソッドを実装します。 uploadFile
メソッドは、指定されたファイルをバイト配列に読み取り、クライアント経由でサーバーに送信するために使用されます。
3. サーバーとクライアントの起動
サーバーとクライアントのコードが完了したら、それらを起動してファイル転送機能をテストする必要があります。まず、サーバー側コードを Tomcat または Java Web アプリケーションをサポートするその他のサーバーにデプロイし、サーバーを起動する必要があります。その後、クライアント コードを直接実行して、JavaFX アプリケーションを起動できます。
プログラムの実行後、クライアントはサーバーとの接続を確立し、「サーバーに接続しました」というプロンプト メッセージがコンソールに表示されます。次に、インターフェース上のファイルセレクターを通じてアップロードするファイルを選択し、「アップロード」ボタンをクリックします。クライアントは選択したファイルをサーバーに送信し、「アップロードされたファイル: ファイル パス」というプロンプト メッセージをコンソールに出力します。
4. 概要
この記事では、Java を使用して Websocket ファイル転送機能を開発する方法を紹介し、サーバーとクライアントの具体的なコード例を示します。 Websocket プロトコルの双方向通信とリアルタイム性により、高速、効率的、安全なファイル転送を実現できます。読者の皆様は、この記事で提供されているサンプル コードに基づいて、Websocket ファイル転送テクノロジをさらに検討して適用できると思います。
以上がJavaを使用してWebSocketファイル転送機能を開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。