Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

socket.io-client.java

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Full featured ● Upgrade transports ● Sending binary data ● Options ● Auto reconnection … Node clientの全機能をサポート

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Released on Maven Central

Slide 15

Slide 15 text

thanks <3