Nao000のぶろぐ

蝶を追っている少年になりたい

WebRTC自分勉強No2【 WebRTCとWebSocketとSocket.ioの関係, PeerConnectionとは, DataChannelとは, Elixir_on_PhoenixのChannels紹介 】

目次

  1. WebRTCとWebSocketとSocket.ioの関係
  2. PeerConnectionとは
  3. DataChannelとは
  4. Elixir_on_PhoenixのChannels紹介
  5. 参考文献

WebRTCとWebSocketとSocket.ioの関係

それぞれ以下の関係になっています。

  • WebRTC = プロジェクト
    • API経由で音声・映像を、Web上・ネイティブアプリケーション上でリアルタイム通信を実現するプロジェクト
    • 2020-04-25追記:クライアント対クライアントの相互接続が可能という点がWebsocketとの違いの1つです( 参考: https://www.atmarkit.co.jp/ait/articles/1305/30/news024_2.html
  • WebSocket = プロトコル
    • クライアントとサーバーを「ソケット」で常時接続を実現するプロトコル
    • HTTPでは必ずクライアントからのリクエストが必要ですが、WebSocketでは最初のリクエストを除いてサーバーから一方的にデータ送信が可能
  • Socket.io = WebSocket を利用できるライブラリ
    • WebSocketを手軽に利用できるJavaScriptのライブラリ

PeerConnectionとは

  • ブラウザとブラウザを通信するための仕様
    • IT分野でたびたび見かける 「仕様」 ってなんだか良くわかってないです。この 「仕様」 を満たしたら、この「名前」を使っていい的なものなのかな
    • WebRTCでは「RTCPeerConnection」という名前で利用できるっぽい https://html5experts.jp/mganeko/19814/

DataChannelとは

Elixir_on_PhoenixのChannels紹介

  • Elixir PhoenixではデフォルトでSocket.ioが入ったアプリを生成可能です。Channelを利用した双方向通信を手軽に体験できます。Qiitaとかのサイトではなく、公式サイトのチュートリアルを見るのってツヨツヨエンジニアっぽくて良くないですか?
  • https://hexdocs.pm/phoenix/channels.html#tying-it-all-together
  • 趣味でElixir調べているので紹介してみました。
  • Elixirに興味はないけど、双方向通信を手軽に体験したい場合はこちら
  • https://socket.io/get-started/chat/

参考文献