AndroidでWebSocket通信をする機会がありました
Androidをクライアントとして動かし、ソケット通信を行いたいというものです
ESP8266やPythonを使ったWebSocketはやったことがありますがAndroidではやったことがなかっためいろいろと調べました
調べた中で、なんとかサンプルプログラムが完成したので記載しておきます
デモ
下の方にボタンがあり、CONNECTボタンを押すとServerへ接続を行い、SENDTEXTをおすと”hello”という文字列を送信します
動作確認環境
- Android 8.0.0
- Android 7.1.1
プログラム
本プログラムはTooTallNate氏のJava-WebSocketにて作成をしています
上記の他にもokhttpというライブラリがありますが、うまく動作をしなかったため、こちらのライブラリを使いました
また、今回作成したプログラムはGitHubにあげています
ライブラリのインストール
build.gradleに以下を書き込み、Sync Nowをします
これでライブラリのインストールは完了です
repositories { mavenCentral() } dependencies { compile "org.java-websocket:Java-WebSocket:1.3.8" }
しかし、現在(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に入れると接続をします
private static String ServerIP = "192.168.0.5"; private static String ServerPORT = "8000";
ws.send()の中身を書き換えれば”hello”という文字列を変えれば違う文字列を送信することができます
ws.send("hello");
Serverのメッセージを受信
myWsClientListenerクラスがWebSocket通信を行う重要なところなっています
public void onMessage(final String message){}にServerから受信したメッセーがもらえます
MainActivity.java
プログラムはGitHubにあげていますが全体プログラムを載せておきます
おまけ サーバーをたてる
過去記事にもかいていますが私はPythonでサーバーを立てて実験をしました
![](https://i0.wp.com/www.autumn-color.com/wp-content/uploads/2017/06/python_logo_eyecatch.png?ssl=1)
コメント