Java

【Java】WebSocketクライアントの実装

はじめに

今回は、JavaによるWebSocketクライアントの実装方法を解説します。

今回のサンプルでは、WebSocketクライアントを作成し、動作確認のためサーバ側の処理(Java)も実装します。

最終的にはサーバ側でクライアントから送信したメッセージが受け取れることを確認します。

以降、以下のバージョン、環境での解説となります。

IDE:eclipse
Tomcatバージョン:8.5
Javaバージョン:8

フォルダ構成

今回作成するサンプルソースのフォルダ構成は以下の通りです。

ディレクトリ構成

プロジェクトの作成

1. WebSocketクライアントのプロジェクト作成

パッケージエクスプローラーで右クリック>新規>Javaプロジェクトを選択し、「SampleClient」というプロジェクトを作成します。

2. サーバのプロジェクト作成

パッケージエクスプローラーで右クリック>新規>その他>Web>動的Javaプロジェクトを選択し、「SampleServer」というプロジェクトを作成します。

WebSocketクライアントのライブラリダウンロード

WebSocketクライアントを実装するには外部からライブラリをダウンロードする必要があります。

まずは、以下のサイトへアクセスしてください。

https://tyrus.java.net/

赤枠部分をクリックしてください。

tyrus

赤枠のダウンロードリンクをクリックします。

ダウンロード選択

ページ下部にある赤枠部分をクリックします。

ライブラリ選択

ダウンロードボタンをクリックします。

ダウンロード

すると、「tyrus-standalone-client-1.12.jar」というファイルがダウンロードされると思いますので、そのファイルを以下へコピーします。

workspace/SampleClient/lib

次に、SampleClientを右クリック>プロパティ>Javaのビルド・パス>ライブラリタブを選択し、JARの追加ボタンを押下します。

jar追加

さきほどコピーしたjarファイルを選択し、OKボタンを押します。

jar選択

Javaのビルド・パス画面のライブラリーに選択したjarファイルが表示されていれば、適用して閉じるボタンを押します。

jar適用

WebSocketクライアントの実装

WebSocketClient.javaを作成し、まず必要なライブラリをインポートします。

Websocketのセッション確立やメッセージ送受信など、Websocketクライアントとしてのライフサイクルを回すために必要なClientEndpointというアノテーションをクラスの先頭につけます。

また、super()メソッドを使用し、ClientEndpointのコンストラクタを呼び出します。

続いてアノテーションを利用して、以下の処理を実装します。

– セッション確立時の処理
– メッセージ受信時の処理
– エラー発生時の処理
– セッション解放時の処理

最後に、WebSocketを起動するためのメインメソッドをコーディングします。

これでWebSocketクライアントは完成です。
最後にコード全体をのせておきます。

サーバ側の処理

動作確認のため、サーバ側の処理を実装します。

WebSocketでサーバ側がデータを受け取る場合は、@ServerEndpointというアノテーションとエンドポイントを指定し、クライアント側がアクセスできるようにしてやる必要があります。

また、データを受け取れるようクライアントと同様に@OnMessageをアノテーションにし、メッセージを受信したら、「メッセージを受信しました。:[message]」とコンソールに出力されるようにします。

サーバ側の処理は以上です。

動作確認

1. サーバの起動

WebSocketServer.javaを右クリック>実行>サーバで実行をクリックし、
サーバを起ち上げます。

2. クライアントの起動

WebSocketClient.javaを右クリック>実行>Javaアプリケーションをクリックし、
クライアントを起動します。

3. 結果確認

最後に、コンソールにクライアントから投げた「Hello World!!」というメッセージが
サーバ側のコンソールに出力されていればOKです。

Javaエンジニアとしてよりスキルアップ

ここからはJavaエンジニアとしてよりスキルアップしたい方向けのおすすめ記事紹介となります。

JavaフレームワークのデファクトスタンダードであるSpringフレームワーク習得したいけど、何から手をつけたらよいかわからないという方。

以下の記事をお読みください。

【2021年最新版】Springフレームワークおすすめ入門書籍やUdemy講座まとめSpringフレームワーク初学者のときに実際にやった書籍やUdemy講座の中で、もっとも分かりやすく、現場で使える実践的な内容が盛り込まれている入門書籍や講座をまとめました。何から手をつけたらよいかわからないという方や業務についていけないという方はぜひ参考にしてください。...

また、無料で基礎からJavaを学びなおしたいという方は以下の記事を参考にしていただければと思います。

【2020年最新版】Java初心者におすすめの無料スクールランキングTOP3スクールに通いたいけどお金がないという方にむけ、客観的審査基準によるJava無料スクールおすすめランキングを公開しております。Javaエンジニアとして現場で戦力となるために必要な実践的な技術が学べるスクールを厳選してお伝えします。...

さいごまで読んでいただき、ありがとうございました。

フリーランスエンジニア転職完全ロードマップ

知り合いから
「フリーランスエンジニアになれば、年収800万円以上の高報酬でかつ、自由な働き方をチョイスできる」
というのを聞いて、フリーランスエンジニアに興味を持ったのですが、
当時SIer企業でエンジニアをやっていたボクはなかなか一歩踏みだせませんでした。

というもの以下のような不安があったからです。

■フリーランスエンジニアってかなりの技術力がないとなれないのではないのか?

■フリーランスエンジニアって不安定なのではないのか?

■フリーランスエンジニアって人脈やコネ、営業力が必要なのではないのか?

しかし、実際にフリーランスエンジニアになってみて気づきました。

これらはすべて間違いです。

過去のボクのようにフリーランスエンジニアに興味あるけど一歩踏み出せないという方向けに
『フリーランスエンジニア転職完全ロードマップ』
という記事を書きました。

この記事読めば、どうすればフリーランスになれるのかが分かりますので、ぜひ一読ください。