AndroidでWebSocket通信をする(クライアント側)

AndroidでWebSocket通信をする機会がありました

Androidをクライアントとして動かし、ソケット通信を行いたいというものです

ESP8266やPythonを使ったWebSocketはやったことがありますがAndroidではやったことがなかっためいろいろと調べました

調べた中で、なんとかサンプルプログラムが完成したので記載しておきます

デモ

下の方にボタンがあり、CONNECTボタンを押すとServerへ接続を行い、SENDTEXTをおすと”hello”という文字列を送信します

動作確認環境

  • Android 8.0.0
  • Android 7.1.1

プログラム

本プログラムはTooTallNate氏のJava-WebSocketにて作成をしています

A barebones WebSocket client and server implementation written in 100% Java. - TooTallNate/Java-WebSocket

上記の他にもokhttpというライブラリがありますが、うまく動作をしなかったため、こちらのライブラリを使いました

また、今回作成したプログラムはGitHubにあげています

AndroidでClientとしてWebsocktをするサンプルプログラム. Contribute to Momijinn/SampleAndroidWebSocketClient development by creating an account on GitHub.

ライブラリのインストール

build.gradleに以下を書き込み、Sync Nowをします

これでライブラリのインストールは完了です

しかし、現在(2018/06/28)においてSnc Nowをすると以下のようなエラーがでてきます

Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’. It will be removed at the end of 2018. For more information see:

上記のは赤字でエラーメッセージっぽくでてきますが、ライブラリのインストールはできています

内容を簡単に訳すと”2018後半ぐらいに’compile’でのライブラリインストールはできなくなるぜ”です

早く対応してほしいです

Serverへの接続と送信するメッセージの変更

MainActivity.javaにあるServerIPとServerPORTに接続したいServerのIPとPORTに入れると接続をします

ws.send()の中身を書き換えれば”hello”という文字列を変えれば違う文字列を送信することができます

Serverのメッセージを受信

myWsClientListenerクラスがWebSocket通信を行う重要なところなっています

public void onMessage(final String message){}にServerから受信したメッセーがもらえます

MainActivity.java

プログラムはGitHubにあげていますが全体プログラムを載せておきます

おまけ サーバーをたてる

過去記事にもかいていますが私はPythonでサーバーを立てて実験をしました

以前にESP8266におけるWebソケット通信について記載しました。 ここ ESP8266間だけでなく、他のコンピュータとでも接続でき...
スポンサーリンク