Slide 1

Slide 1 text

MQTT.IO Socket.IO Meetup@Tokyo 2014/7/3 Kazuyuki Honda@hakobera

Slide 2

Slide 2 text

Me Name: Kazuyuki Honda Work at: Quipper, Ltd (Edtech Startup) Role: DevOps Twitter: @hakobera

Slide 3

Slide 3 text

MQTT MQ Telemetry Transport

Slide 4

Slide 4 text

What is MQTT? MQ Telemetry Transport Protocol is a lightweight broker-based publish/subscribe messaging protocol designed to be open, simple, lightweight and easy to implement. ! Development Lead by IBM New v3.1.1 spec is standardized at OASIS IUUQEPDTPBTJTPQFOPSHNRUUNRUUWNRUUWIUNM IUUQXXXJCNDPNEFWFMPQFSXPSLTMJCSBSZXTNRUU

Slide 5

Slide 5 text

Features of the protocol • Light weight publish/subscribe protocol over TCP/IP • A small transport overhead • the fixed-length header is just 2 bytes • QoS - Three qualities of service for message delivery. Qos 0:”At most once”, QoS 1: ”At least once”, QoS 2: ”Exactly once”. • A mechanism to notify interested parties to an abnormal disconnection of a client using the Last Will and Testament feature IUUQUEPDJOGPCMPHNRUUIUNM

Slide 6

Slide 6 text

Fit for M2M (IoT) These characteristics make it ideal for use in constrained environments, for example, but not limited to: ! • Where the network is expensive, has low bandwidth or is unreliable • When run on an embedded device with limited processor or memory resources

Slide 7

Slide 7 text

MQTT.IO MQTT over Socket.IO

Slide 8

Slide 8 text

What is MQTT.IO? MQTT.IO is a porting “MQTT over WebSocket” to the Socket.IO. Currently just experimental project. ! Socket.IO 1.0 supports Binary streaming, so we can do it now! Thanks Guillermo!

Slide 9

Slide 9 text

Advantage of MQTT.IO vs WebSocket We can use MQTT anywhere! ! Many MQTT broker support WebSocket, but some of load-balancer/reverse-proxy like Amazon ELB cannot allow WebSocket connection (> <)

Slide 10

Slide 10 text

Advantage of MQTT.IO vs Socket.IO • Easy to use many other language • JavaScript, Java, Go, C/C++, Python • Flexible pub/sub using wildcards • /groups/group1/1 => Send to user 1 • /groups/group1/# => Send to group1 • /groups/# => Broadcast to all group • Can Use MQTT features (QoS, Will, Retain) • Easy to Scale Backend servers (maybe)

Slide 11

Slide 11 text

All Binary Stream .255 #SPLFS "SSBZ#V⒎FS 6*OU"SSBZ #V⒎FSBOE %VQMFY4USFBN +VTU#ZUFT Flow of MQTT.IO

Slide 12

Slide 12 text

Demo ! build by Paho and Mosca Powered by AWS and ࣌Ӎಊ IUUQTHJTUHJUIVCDPNWPMVOUBTGFBFEDD

Slide 13

Slide 13 text

MQTT Meetup Tokyo 2014.08 IUUQDPOOQBTTDPNFWFOU

Slide 14

Slide 14 text

Maybe we can use Engine.IO not Socket.IO Absolutely Yes

Slide 15

Slide 15 text

Any Questions?