Socket.IO Meetup in Tokyo
Socket.IO 1.0 Client forJavaの紹介Socket.IO Meetup in Tokyo
View Slide
About Me@nkzawa● フロントエンド・エンジニア● Javaプログラマではありません ...● I ♥ Node.JS and Socket.IO
socket.io-client.java
socket.io-client.java● Socket.IO v1.0 対応のJava client● Node clientをJavaへ移植● Android supportgithub.com/nkzawa/socket.io-client.java
Over a year ago ...Socket.IO 1.0のリリース前から存在する
Motivation● Socket.IO 1.0のアップデートで、既存clientライブラリが使用できなくなった。● Node clientとのより高い互換性のため。
Full featured● Upgrade transports● Sending binary data● Options● Auto reconnection…Node clientの全機能をサポート
Similar Interface// Node clientvar socket = io(“http://localhost”);// Java clientSocket socket = IO.socket(“http://localhost”);
Similar Interface// Node clientsocket.emit(“myevent”, “hi”);// Java clientsocket.emit(“myevent”, “hi”);
Similar Interface// Node clientsocket.on(“myevent”, function() {});// Java clientsocket.on(“myevent”, new Emitter.Listener() {@Overridepublic void call(Object… args) {}});
Architecture● emitter.java (EventEmitter)● engine.io-client.java● socket.io-client.java構成や中のロジックがNode clientと同じ
Architecture● 本家Node clientの新機能やBug Fixの反映が容易。● Java clientで行った修正をNode clientにfeedbackできる。● Node clientと同程度にstable。Node ⇔ Java
Single Threaded非同期以外の全ての処理が一つのスレッドで実行される。All non-background processes run on a particular thread.● No synchronized keyword● Simple and robust● マルチスレッドの厄介な問題を避けることができるので、安定して動作する。
Released on Maven Central
thanks <3