Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
Java-WebSocket-1.3.0.jar
Main.java
README.md
WSClient.java

README.md

Qoosky IoT BaaS APIs / Cloud Controller / Java

本ページは Qoosky Cloud Controller を Raspberry Pi から利用するための情報をまとめたものです。ここでは特に Java を利用した接続方法をまとめます。

必要なもの

  • インターネット接続設定が完了した Raspberry Pi

Java のインストール

OS によっては既にインストール済みの場合があります。以下のコマンドで確認します。

pi@raspberrypi:~ $ which java
/usr/bin/java

インストールされていない場合は以下のコマンドでインストールします。

pi@raspberrypi:~ $ sudo apt-get install oracle-java8-jdk

ライブラリのダウンロード

Java WebSockets ライブラリを利用します。以下のコマンドを実行して JAR ファイルをダウンロードします。なお、最新の JAR ファイルは The Central Repository からダウンロードできます。

pi@raspberrypi:~ $ wget https://github.com/qoosky/websocket_clients/raw/master/java/Java-WebSocket-1.3.0.jar

サンプルコードのダウンロード

以下のコマンドで本レポジトリのサンプルコードをダウンロードします。

pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/qoosky/websocket_clients/master/java/Main.java
pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/qoosky/websocket_clients/master/java/WSClient.java

Main.java

class Main {
    public static void main(String args[]) {
        try {
            WSClient ws = new WSClient("ws://api.qoosky.io/v1/controller/actuator/ws");
            ws.connect();
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

WSClient.java

import org.java_websocket.client.*;
import org.java_websocket.handshake.*;
import org.java_websocket.drafts.Draft_17;
import java.net.URISyntaxException;

class WSClient extends WebSocketClient {

    public WSClient(String url) throws URISyntaxException {
        super(new java.net.URI(url), new Draft_17());
    }

    public void onOpen(ServerHandshake handshakedata) {
        System.out.println("Successfully connected to the API server.");
        String str = "{\"token\":\"XXXX-XXXX-XXXX-XXXX\"}";
        send(str);
    }

    public void onError(Exception ex) {
        throw new RuntimeException("An unexpected error has occurred: " + ex.toString());
    }

    public void onMessage(String message) {
        System.out.println("received: " + message);
    }

    public void onClose(int code, String reason, boolean remote) {
        System.out.println("Connection closed.");
    }
}

以下の部分を Qoosky Cloud Controller で発行した API トークンで書き換えてください。

String str = "{\"token\":\"XXXX-XXXX-XXXX-XXXX\"}";

ビルドおよび実行

以下のコマンドでビルドします。

pi@raspberrypi:~ $ javac -cp ./Java-WebSocket-1.3.0.jar Main.java WSClient.java

実行してみましょう。

pi@raspberrypi:~ $ java -cp '.:./Java-WebSocket-1.3.0.jar' Main

以下のように出力されれば成功です。ゲームパッド状の Cloud Controller を起動すれば相互接続できる状態になりました。

pi@raspberrypi:~ $ java -cp '.:./Java-WebSocket-1.3.0.jar' Main
Successfully connected to the API server.
received: {"notification":"Authentication success."}
received: {"notification":"Searching for your cloud controller device..."}
received: {"notification":"Searching for your cloud controller device..."}
received: {"notification":"Searching for your cloud controller device..."}