1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

node-webrtcのサンプルを動かしてみる

Last updated at Posted at 2021-09-02

環境

  • Windows 10
  • node-v16.8.0-x64.msi
  • コマンドプロンプト
  • Google Chrome Version 93.0.4577.63 (Official Build) (64-bit)

注意

  • node.jsがLTS版の node-v14.17.5-x64.msi だと npm install Windowsのアクセス違反のエラーが出て動作しなかった
    • LTS版の方が安定していると信じこんでいて、少しはまってしまった
npm ERR! code 3221225477

背景

  • 様々な環境で動作するWebRTCのライブラリを探している
  • ブラウザなしで、気楽に通信テストを行いたい
  • 候補の1つとして、node-webrtc を触ってみる

node-webrtc とは

Node.js Native Addon that provides bindings to WebRTC M87.

  • 「Node.js のネイティブのアドオンで、WebRTC M87準拠」と捉えればよいでしょうか
    • WebRTC M87は、 Nov 6, 2020にリリースされているようだ
    • node-webrtcのWebRTC M87対応は、Nov 3, 2020あたりにコミットされている

WebRTCのRelease Note

  • 2021/9/2時点、以下のリストでは、M89が最新のようだ

node-webrtcサンプルを触ってみる

サンプルファイルの場所

サンプルの全体の処理の流れ

  • サンプルは、node.jsのExpressフレームワークを用いたWebアプリの形で提供される
  • node.js同士でWebRTC通信をするサンプルではなく、「node.jsサーバー」と「ブラウザ」でWebRTC通信するサンプル
    • browserifyを使って、コードをブラウザで動作するコードに変換している
  • RTCPeerConnection Negotiationは、REST API(HTTP)で実現している

RTCPeerConnection Negotiationの流れ

ss1.png

実行したコマンド

git clone https://github.com/node-webrtc/node-webrtc-examples.git

npm install

npm start

> node-webrtc-examples@0.1.0 start
> node index.js

http://localhost:3000

実行結果

  • ブラウザで、http://localhost:3000 を開く
  • 以下は、一番、簡単そうな DataChannelを使ったテキストデータをやりとりするサンプルを実行した結果
  • ブラウザ側の Consoleにログが出ることを理解するまでに時間がかかった(実は一番、難しかった)
    • node.jsを実行したターミナルをずっと眺めていた

ping-pong.gif

感想

  • node.js(node-webrtc)同士で通信するサンプルではないという点を理解して、「node.js(node-webrtc)のコード」と「ブラウザ用のコード」を区別して理解する必要がある(同じjsファイルなので、これはどっちで実行されるのかな?と混乱してしまった)
  • node-webrtcを使えば、ブラウザで動作するWebRTCと同じように書けそうなので、取り急ぎ動かすならば、以下のコードを見るだけでよかったかもしれない
1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?