Slide 1

Slide 1 text

Socket.IO 4.x や JavaScriptフレームワーク +リアルタイム通信の話(Fastify・µWebSockets.jsなど) 2022年3月15日 (火) IoT縛りの勉強会! IoTLT vol.85 @オンライン 豊田陽介( ) @youtoy

Slide 2

Slide 2 text

自己紹介 ビジュアルプログラミング IoTLT共同主催、その他にも 豊田陽介( ) 普段は、某通信会社勤務 @youtoy ・IT系イベント主催、登壇や運営なども ・子ども向けの活動いろいろ(IT系以外も) ・ Microsoft MVP(2021/10 から) プライベートでの活動 ・ガジェット好き ・今月は技術書の出版が! その他 モノ作りコミュニティ界隈などの 皆様との共著(技術評論社から)

Slide 3

Slide 3 text

M5Stack + UIFlow +ネット接続 の作例を書いた!

Slide 4

Slide 4 text

本題へ!

Slide 5

Slide 5 text

今日の主な話題

Slide 6

Slide 6 text

今日の話題1: Socket.IO 4.x

Slide 7

Slide 7 text

初めて使ったのは2013年くらい? 間違いなくこのタイミングでは 使ってた Web技術者向け勉強会で、Arduino とWeb をつなぐハンズオン(主催者、兼、講師) の通信部分で使った

Slide 8

Slide 8 text

初めて使ったのは2013年くらい? 間違いなくこのタイミングでは 使ってた Web技術者向け勉強会で、Arduino とWeb をつなぐハンズオン(主催者、兼、講師) の通信部分で使った

Slide 9

Slide 9 text

気がついたら数回の メジャーバージョンアップ ※ かなり長い間、使ってなかった

Slide 10

Slide 10 text

最新の 4.x の情報を見てみて記事にした

Slide 11

Slide 11 text

書いた記事から情報をいくつか抜粋 クライアント側の実装、Go とか Rust とか入ってる 「Server Initialization」のページ   で組み合わせられるものとして  登場していたもの

Slide 12

Slide 12 text

この後の話題につながった元

Slide 13

Slide 13 text

ちなみに koajs/koa: Expressive middleware for node.js using ES2017 async functions nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8)

Slide 14

Slide 14 text

今日の話題2: Fastify と fastify-websocket

Slide 15

Slide 15 text

【Fastify】高速さが特長の1つらしい ベンチマークのページ: Fastify、Koa、Express Restify、Hapi との比較

Slide 16

Slide 16 text

余談:また他のが出てきたw Restify、Hapi

Slide 17

Slide 17 text

余談:また他のが出てきたw Restify、Hapi The future of Node.js REST development The Simple, Secure Framework Developers Trust

Slide 18

Slide 18 text

公式のWebSocket連携の仕組みも

Slide 19

Slide 19 text

サーバー側・クライアント側のプログラム

Slide 20

Slide 20 text

今日の話題3: µWebSockets.js

Slide 21

Slide 21 text

µWebSocket.jsも高速性を特長にしてる 8.5x that of Fastify and at least 10x that of Socket.IO 名指しでw

Slide 22

Slide 22 text

実装してみたサーバーサイド Get に対する応答 WebSocket用

Slide 23

Slide 23 text

今日の話題に関する内容は記事で公開済み

Slide 24

Slide 24 text

うまくいってない部分が あるもの

Slide 25

Slide 25 text

記事を書きつつお試しをしていたけど... 【Restify】 クイックスタートの中に Socket.IO が登場してる所が 【soketi】 シンプルで高速なオープンソースの WebSocketサーバーと紹介されていたもの (µWebSockets.js をベースにしている  らしい)

Slide 26

Slide 26 text

見かけて気になったもの

Slide 27

Slide 27 text

今日のネタをキーワード検索して出てきた

Slide 28

Slide 28 text

フレームワーク・リアルタイム 通信周りを、また見ていきたい

Slide 29

Slide 29 text

終わり!