以前紹介した ブラウザからTCP・UDP通信を行えるDirect Sockets APIというものがあります。( Isolated Web Appsで動作する場合のみ使用できます )
asnokaze.hatenablog.com
このDirect Sockets APIに、マルチキャスト通信を行えるようにする提案が出ています。
github.com
これによりネットワーク内の必要なノードに対して効率的にデータ送信ができるようになります。
簡単に Explainerを眺めておく。
ユースケース
- 送信者から、ネットワーク内の複数ノードへの動画データの送信
- mDNSを用いたネットワーク内の特定端末のディスカバリ
コード例
送信例
// Params that sender and receiver are agreed upon.
var PORT = 12345;
var MULTICAST_GROUP_ADDR = "239.0.0.1";
// Can be bound or connected socket as you like.
// This is example of connected one.
const socket = new UDPSocket({
remoteAddress: MULTICAST_GROUP_ADDR,
remotePort: PORT,
// How much network hops are allowed until the packet is discarded.
multicastTimeToLive: 5,
// For debug purposes, send this datagram also back to this machine.
multicastLoopback: true
});
const encoder = new TextEncoder();
const { writable, remoteAddress, remotePort, localAddress, localPort } = await socket.opened;
const writer = writable.getWriter();
await writer.ready;
for (let i = 0; i < 3; i++) {
await writer.write({data: encoder.encode(`message from CLIENT = ${i}`)});
}