chrome.sockets.udp

설명

chrome.sockets.udp API를 사용하여 UDP 연결을 사용하는 네트워크를 통해 데이터를 주고받습니다. 이 API는 이전에 '소켓' API에 있던 UDP 기능을 대체합니다.

매니페스트

이 API를 사용하려면 매니페스트에서 다음 키를 선언해야 합니다.

"sockets"

유형

CreateInfo

속성

  • socketId

    숫자

    새로 생성된 소켓의 ID입니다. 이 API에서 생성된 소켓 ID는 지원 중단된 [socket](../socket/) API 등 다른 API에서 생성된 소켓 ID와 호환되지 않습니다.

DnsQueryType

Chrome 103 이상

DNS 확인 환경설정 기본값은 any이며 IPv4 또는 IPv6를 반환할 수 있는 현재 OS 구성을 사용합니다. ipv4는 IPv4를, ipv6는 IPv6를 강제 적용합니다.

열거형

'ipv4'

'ipv6'

ReceiveErrorInfo

속성

  • resultCode

    숫자

    기본 recvfrom() 호출에서 반환된 결과 코드입니다.

  • socketId

    숫자

    소켓 ID

ReceiveInfo

속성

  • 데이터

    ArrayBuffer

    UDP 패킷 콘텐츠 (현재 버퍼 사이즈로 잘림)입니다.

  • remoteAddress

    string

    패킷이 시작된 호스트의 주소입니다.

  • remotePort

    숫자

    패킷이 시작되는 호스트의 포트입니다.

  • socketId

    숫자

    소켓 ID

SendInfo

속성

  • bytesSent

    number 선택사항

    전송된 바이트 수 (결과가 0인 경우)

  • resultCode

    숫자

    기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

SocketInfo

속성

  • bufferSize

    number 선택사항

    데이터를 수신하는 데 사용되는 버퍼의 크기입니다. 버퍼 크기가 명시적으로 지정되지 않은 경우 값이 제공되지 않습니다.

  • localAddress

    문자열 선택사항

    기본 소켓이 바인딩된 경우 에는 로컬 IPv4/6 주소가 포함됩니다.

  • localPort

    number 선택사항

    기본 소켓이 바인딩된 경우 에는 로컬 포트가 포함됩니다.

  • 이름

    문자열 선택사항

    소켓과 연결된 애플리케이션 정의 문자열입니다.

  • 일시중지됨

    boolean

    소켓이 onReceive 이벤트의 실행이 차단되었는지 여부를 나타내는 플래그입니다.

  • 영구

    boolean

    애플리케이션이 정지될 때 소켓이 열려 있는지 여부를 나타내는 플래그입니다 (SocketProperties.persistent 참고).

  • socketId

    숫자

    소켓 식별자입니다.

SocketProperties

속성

  • bufferSize

    number 선택사항

    데이터를 수신하는 데 사용되는 버퍼의 크기입니다. 버퍼가 너무 작아서 UDP 패킷을 수신할 수 없으면 데이터가 손실됩니다. 기본값은 4,096입니다.

  • 이름

    문자열 선택사항

    소켓과 연결된 애플리케이션 정의 문자열입니다.

  • 영구

    부울 선택사항

    애플리케이션의 이벤트 페이지가 언로드될 때 소켓이 열려 있는지 여부를 나타내는 플래그입니다 (앱 수명 주기 관리 참조). 기본값은 'false'입니다. 애플리케이션이 로드되면 이전에 Persistent=true로 열린 모든 소켓을 getSockets로 가져올 수 있습니다.

방법

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

소켓의 로컬 주소와 포트를 바인딩합니다. 클라이언트 소켓의 경우 포트 0을 사용하여 플랫폼이 사용 가능한 포트를 선택하도록 하는 것이 좋습니다.

bind 작업이 성공적으로 완료되면 소켓이 일시중지된 경우를 제외하고 UDP 패킷이 지정된 주소/포트에 도착할 때 onReceive 이벤트가 발생합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 주소

    string

    로컬 머신의 주소입니다. DNS 이름, IPv4, IPv6 형식이 지원됩니다. '0.0.0.0'을 사용하여 사용 가능한 모든 로컬에서 사용 가능한 네트워크 인터페이스에서 패킷을 수락합니다.

  • 포트

    숫자

    로컬 머신의 포트입니다. 사용 가능한 포트에 바인딩하려면 '0'을 사용합니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

close()

프로미스
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

소켓을 닫고 소켓이 바인딩된 주소/포트를 해제합니다. 생성된 각 소켓은 사용 후 닫혀야 합니다. 함수가 호출되는 즉시 소켓 ID가 더 이상 유효하지 않습니다. 그러나 소켓은 콜백이 호출될 때만 닫힙니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    ()=>void

반환 값

  • Promise<void>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

create()

프로미스
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

지정된 속성으로 UDP 소켓을 만듭니다.

매개변수

  • 속성

    SocketProperties 선택사항

    소켓 속성 (선택사항)

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (createInfo: CreateInfo)=>void

    • createInfo

      소켓 생성 결과입니다.

반환 값

  • Promise<CreateInfo>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getInfo()

프로미스
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

지정된 소켓의 상태를 검색합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (socketInfo: SocketInfo)=>void

    • socketInfo

      소켓 정보를 포함하는 객체입니다.

반환 값

  • Promise<SocketInfo>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getJoinedGroups()

프로미스
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

소켓이 현재 연결된 멀티캐스트 그룹 주소를 가져옵니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (groups: string[])=>void

    • 그룹

      문자열[]

      소켓이 연결된 그룹의 배열입니다.

반환 값

  • 프로미스<string[]>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getSockets()

프로미스
chrome.sockets.udp.getSockets(
  callback?: function,
)

애플리케이션이 소유하고 있으며 현재 열려 있는 소켓의 목록을 검색합니다.

매개변수

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (socketInfos: SocketInfo[])=>void

    • socketInfos

      소켓 정보가 포함된 객체의 배열입니다.

반환 값

  • Promise<SocketInfo[]>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

joinGroup()

chrome.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

멀티캐스트 그룹에 참여하고 해당 그룹에서 패킷을 받기 시작합니다. 이 메서드를 호출하기 전에 소켓을 로컬 포트에 바인딩해야 합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 주소

    string

    가입할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)

joinGroup를 사용하여 이전에 연결된 멀티캐스트 그룹에서 탈퇴합니다. 이 작업은 소켓이 닫힐 때 OS에서 자동으로 실행하므로 나중에 소켓을 계속 사용하려는 경우에만 호출해야 합니다.

그룹을 탈퇴하면 라우터가 로컬 호스트에 멀티캐스트 데이터그램을 전송할 수 없으며 호스트의 다른 프로세스가 그룹에 아직 연결되지 않았다고 가정합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 주소

    string

    탈퇴할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)

지정된 소켓의 데이터를 지정된 주소와 포트로 전송합니다. 이 메서드를 호출하기 전에 소켓을 로컬 포트에 바인딩해야 합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 데이터

    ArrayBuffer

    전송할 데이터입니다.

  • 주소

    string

    원격 시스템의 주소입니다.

  • 포트

    숫자

    원격 머신의 포트입니다.

  • dnsQueryType

    DnsQueryType 선택사항

    Chrome 103 이상

    주소 확인 환경설정입니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (sendInfo: SendInfo)=>void

    • sendInfo

      send 메서드의 결과입니다.

setBroadcast()

Chrome 44 이상
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)

이 소켓에서 브로드캐스트 패킷을 사용 설정하거나 사용 중지합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 사용 설정됨

    boolean

    브로드캐스트 패킷을 사용 설정하려면 true, 사용 중지하려면 false.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다.

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)

호스트에서 멀티캐스트 그룹으로 전송된 멀티캐스트 패킷을 호스트에서 루프백할지 여부를 설정합니다.

참고: setMulticastLoopbackMode의 동작은 Windows와 Unix 계열 시스템에서 약간 다릅니다. 비일관성은 같은 호스트에 두 개 이상의 애플리케이션이 멀티캐스트 루프백 모드에 서로 다른 설정을 사용하면서 동일한 멀티캐스트 그룹에 연결된 경우에만 발생합니다. Windows에서 루프백이 해제된 애플리케이션은 루프백 패킷을 수신하지 않습니다. 반면 Unix와 유사한 시스템에서는 루프백이 꺼진 애플리케이션이 루프백 패킷을 동일한 호스트의 다른 애플리케이션으로 전송하지 않습니다. MSDN을 확인하세요. http://goo.gl/6vqbj

이 메서드를 호출하는 데는 멀티캐스트 권한이 필요하지 않습니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 사용 설정됨

    boolean

    루프백 모드 사용 여부를 나타냅니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)

멀티캐스트 그룹에 전송된 멀티캐스트 패킷의 TTL(수명)을 설정합니다.

이 메서드를 호출하는 데는 멀티캐스트 권한이 필요하지 않습니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • ttl

    숫자

    TTL(수명) 값입니다.

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (result: number)=>void

    • 결과

      숫자

      기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.

setPaused()

프로미스
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

소켓을 일시중지하거나 일시중지를 해제합니다. 일시중지된 소켓은 onReceive 이벤트를 실행하지 못하도록 차단됩니다.

매개변수

  • socketId

    숫자

  • 일시중지됨

    boolean

    일시중지 또는 일시중지 해제 여부를 나타내는 플래그입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    ()=>void

반환 값

  • Promise<void>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

update()

프로미스
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

소켓 속성을 업데이트합니다.

매개변수

  • socketId

    숫자

    소켓 ID

  • 업데이트할 속성입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    ()=>void

반환 값

  • Promise<void>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

이벤트

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

지정된 소켓에서 UDP 패킷이 수신되면 발생하는 이벤트입니다.

매개변수

onReceiveError

chrome.sockets.udp.onReceiveError.addListener(
  callback: function,
)

런타임이 소켓 주소와 포트의 데이터를 기다리는 동안 네트워크 오류가 발생하면 이벤트가 발생합니다. 이 이벤트가 발생하면 소켓이 일시중지되고 소켓이 다시 시작될 때까지 이 소켓에 대해 더 이상 onReceive 이벤트가 발생하지 않습니다.

매개변수