GoogleもパブリックなSTUNサーバを用意している。
stun.l.google.com:19302
Node.jsだと
npm install stunでインストールできる。(githubページ)
ただgithubのexamplesフォルダ内のclient.jsを実行しても失敗する。
...client.js:31原因は(いつからかわからないが)STUNサーバがMAPPED_ADDRESSではなくて、XOR_MAPPED_ADDRESSを返すようになっているから。
peer.push(packet.attrs[stun.attributes.MAPPED_ADDRESS]);
^
TypeError: Cannot read property 'MAPPED_ADDRESS' of undefined
client.jsを実行すると、エラーメッセージの前に
Sending STUN packetという出力があり、attrsの32というのが、githubのlibディレクトリ内のpacket.jsに定義されているXOR_MAPPED_ADDRESS。
Received STUN packet: { class: 1,
method: 256,
attrs: { '32': <Buffer 00 01 bf 11 5c d3 78 5e> },
tid: 769776767 }
そもそもgithubの更新が2013年で止まっている。
こちら(https://github.com/orbitbot/node-stun )の方がXOR_MAPPED_ADDRESS対応版を作ってくれている。
cloneして動作を確かめる。
ちゃんと返ってくる。
0 件のコメント:
コメントを投稿