hakobera's blog

技術メモ。たまに雑談

Tuppari の Java クライアントを作った

Tuppari - WebSocket on Your Cloud - - Scalaとlift のはずだった ・・・

前回、Node.js で構築した Tuppari (コンセプトは Pusher クローン)を紹介しましたが、実は API 仕様が公開されていて、Node.js 以外の言語/環境でもクライアントを作ることができます。

Tuppari API Reference

で、これにもとづいて Java クライアントを作りました。他の言語でも書けると思うので、興味がある方は是非挑戦してみてください。そして、できたら教えて下さい。

tuppari-java

Tuppari 公開記念ハッカソン

興味があればどうぞー。Node.js はちょっとわからないけど、Java なら任せろー、な方も大歓迎です。ご希望があれば、Tuppari の使い方、各自の環境へのインストール方法などサポートします。

Node塾番外編 Real-time Web ハッカソン - [PARTAKE]

使い方

maven から利用することを想定しています。pom.xml に以下の設定を記入してください。

<repositories>
    <repository>
        <id>tuppari-java</id>
        <name>tuppari-java repo</name>
        <url>http://hakobera.github.com/tuppari-java/releases</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>tuppari</groupId>
        <artifactId>tuppari-java</artifactId>
        <version>0.1.0</version>
    </dependency>
</dependencies>

サンプルコード

以下の様な感じで、ほぼ Node.js のコード同じ感じで書けます。

package com.tuppari;

import com.tuppari.TuppariChannel;
import com.tuppari.TuppariClient;

import java.net.URI;
import java.util.Map;

public class TuppariExample {

    /**
     * Usage: java com.tuppari.example.TuppariExample [applicationId] [accessKeyId] [accessSecretKey]
     */
    public static void main(String[] args) {
        if (args.length != 3) {
            throw new IllegalArgumentException("Usage: java com.tuppari.example.TuppariExample [applicationId] [accessKeyId] [accessSecretKey]");
        }

        String applicationId = args[0];
        String accessKeyId = args[1];
        String accessSecretKey = args[2];

        TuppariClient client = new TuppariClient(applicationId, accessKeyId, accessSecretKey);
        // Run on you own cloud, specify the target URL.
        // TuppariClient client = new TuppariClient(applicationId, accessKeyId, accessSecretKey, URI.create("http://localhost:5100"));
        TuppariChannel channel = client.join("your_channel");
        Map<String, String> result = channel.send("your_event", "hello");

        System.out.print(result);
    }

}