Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Socket.IO 1.0 Client for Javaの紹介

Socket.IO 1.0 Client for Javaの紹介

Socket.IO Meetup in Tokyo

Naoyuki Kanezawa

July 03, 2014
Tweet

More Decks by Naoyuki Kanezawa

Other Decks in Technology

Transcript

  1. Socket.IO 1.0 Client for
    Javaの紹介
    Socket.IO Meetup in Tokyo

    View Slide

  2. About Me
    @nkzawa
    ● フロントエンド・エンジニア
    ● Javaプログラマではありません ...
    ● I ♥ Node.JS and Socket.IO

    View Slide

  3. socket.io-client.java

    View Slide

  4. socket.io-client.java
    ● Socket.IO v1.0 対応のJava client
    ● Node clientをJavaへ移植
    ● Android support
    github.com/nkzawa/socket.io-client.java

    View Slide

  5. Over a year ago ...
    Socket.IO 1.0のリリース前から存在する

    View Slide

  6. Motivation
    ● Socket.IO 1.0のアップデートで、既存clientライ
    ブラリが使用できなくなった。
    ● Node clientとのより高い互換性のため。

    View Slide

  7. Full featured
    ● Upgrade transports
    ● Sending binary data
    ● Options
    ● Auto reconnection

    Node clientの全機能をサポート

    View Slide

  8. Similar Interface
    // Node client
    var socket = io(“http://localhost”);
    // Java client
    Socket socket = IO.socket(“http://localhost”);

    View Slide

  9. Similar Interface
    // Node client
    socket.emit(“myevent”, “hi”);
    // Java client
    socket.emit(“myevent”, “hi”);

    View Slide

  10. Similar Interface
    // Node client
    socket.on(“myevent”, function() {});
    // Java client
    socket.on(“myevent”, new Emitter.Listener() {
    @Override
    public void call(Object… args) {}
    });

    View Slide

  11. Architecture
    ● emitter.java (EventEmitter)
    ● engine.io-client.java
    ● socket.io-client.java
    構成や中のロジックがNode clientと同じ

    View Slide

  12. Architecture
    ● 本家Node clientの新機能やBug Fixの反映が容易。
    ● Java clientで行った修正をNode clientにfeedbackできる。
    ● Node clientと同程度にstable。
    Node ⇔ Java

    View Slide

  13. Single Threaded
    非同期以外の全ての処理が一つのスレッドで実行される。
    All non-background processes run on a particular thread.
    ● No synchronized keyword
    ● Simple and robust
    ● マルチスレッドの厄介な問題を避けることができるので、安
    定して動作する。

    View Slide

  14. Released on Maven Central

    View Slide

  15. thanks <3

    View Slide