Slide 1

Slide 1 text

websocketについて 土方宏太郎

Slide 2

Slide 2 text

websocketとは? HTTP:クライアント(ブラウザ)がリクエストを送 り、サーバーがレスポンスを返す WS(WebSocket):WebSocket は、クライアントとサーバ ー間で双方向通信を可能にするプロトコル。一度接続が確立さ れると、その後はクライアントとサーバーが自由に情報を送受 信できます。 例:チャットアプリ、ゲームやトラッキングシステム、株価やリアルタイムデー タの更新。

Slide 3

Slide 3 text

リクエスト ブラウザ サーバー サーバー ブラウザ websocketリクエスト レスポンス 双方向通信 websocketコネクション HTTP websoket wss://ws-ap3.pusher.com/app/

Slide 4

Slide 4 text

山田のブラウザ webサーバー 送信 pusherサーバー 実践:Pusherを使って、チャット機能を実装 田中のブラウザ 鈴木のブラウザ webSocket メッセージを 任意のチャンネルにブロードキャスト(送信) http/https webSocket webSocket

Slide 5

Slide 5 text

クライアント webサーバー connection subscription 接続 購読 リッスン 接続リクエスト 購読リクエスト(channel:chat) 接続成功(socket_id) 購読成功 pusherサーバー イベントをブロードキャスト (MessageSent) 実装:イベントを受け取るまでの流れ ① ②

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Pusherにログイン セットアップ

Slide 8

Slide 8 text

諸々セッティング。 (環境変数、ルーティング) コード解説①

Slide 9

Slide 9 text

サイト読み込み時にクライアントからpushserサーバー へ接続確立’connection) コード解説②

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

チャット画面 コード解説③ 送信処理&リスナー

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

webサーバからpusherサーバーのチャンネルにイベントをブロード キャスト(送信)する コード解説④

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

特徴 パブリックチャネル プライベートチャネル アクセス制限 誰でもアクセス可能 認証されたユーザーのみアクセ ス可能 認証が必要か 不要 必要 データの保護 保護されない(全ての購読者に 通知される) 認証されたユーザーのみ通知を 受け取る 使用例 公開チャット、通知システム 個人チャット、ユーザー専用ダ ッシュボード ソケットIDの利用 使用しない 認証プロセスで利用(リクエス トに含められる) パブリックチャンネルだと誰でもチャッ トを受信できてしまう・・・ 🥺

Slide 18

Slide 18 text

クライアント webサーバー connection subscription 購読 リッスン 接続リクエスト 購読リクエスト broadcat/authへPOST 接続成功(socket_id) 購読成功 Jsonレスポンス {auth: key generate} {auth: key generate, channel:chat} 接続 (channnel_name,socket_id) pusherサーバー イベントをブロードキャスト (MessageSent) イベントを受け取るまでの流れ  -プライベートチャンネル 認証ロジック

Slide 19

Slide 19 text

発展編

Slide 20

Slide 20 text

〇〇さんが入力しています・・・と表示する PusherのWisperを使って 山田のブラウザ ブロードキャストより 高速 🥺 pusherサーバー 田中のブラウザ webサーバー メッセージ入力すると {typer: ‘田中一郎’ typingイベント {typer: ‘田中一郎’

Slide 21

Slide 21 text

UI Whisperの実装

Slide 22

Slide 22 text

認証ロジック追加

Slide 23

Slide 23 text

プライベートチャンネルに送信

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

ご清聴ありがとうございました!

Slide 27

Slide 27 text

メッセージ数:月間200,000メッセージまで。 Pusherの無料プラン 同時接続数:最大100接続まで。