當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js dgram.Socket.addMembership(multicastAddress[, multicastInterface])用法及代碼示例


socket.addMembership(multicastAddress[, multicastInterface])

添加於:v0.6.9

參數

使用IP_ADD_MEMBERSHIP 套接字選項告訴內核在給定的multicastAddressmulticastInterface 處加入多播組。如果未指定multicastInterface 參數,操作係統將選擇一個接口並為其添加成員資格。要將成員資格添加到每個可用接口,請多次調用addMembership,每個接口一次。

當在未綁定的套接字上調用時,此方法將隱式綁定到隨機端口,偵聽所有接口。

在多個cluster worker 共享一個 UDP 套接字時,socket.addMembership() 函數必須隻調用一次,否則會發生 EADDRINUSE 錯誤:

import cluster from 'node:cluster';
import dgram from 'node:dgram';

if (cluster.isPrimary) {
  cluster.fork(); // Works ok.
  cluster.fork(); // Fails with EADDRINUSE.
} else {
  const s = dgram.createSocket('udp4');
  s.bind(1234, () => {
    s.addMembership('224.0.0.114');
  });
}const cluster = require('node:cluster');
const dgram = require('node:dgram');

if (cluster.isPrimary) {
  cluster.fork(); // Works ok.
  cluster.fork(); // Fails with EADDRINUSE.
} else {
  const s = dgram.createSocket('udp4');
  s.bind(1234, () => {
    s.addMembership('224.0.0.114');
  });
}

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 dgram.Socket.addMembership(multicastAddress[, multicastInterface])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。