chrome.sockets.udp

설명

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

매니페스트

이 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

속성

  • 데이터

    배열 버퍼

    UDP 패킷 콘텐츠 (현재 버퍼 크기로 잘림)입니다.

  • remoteAddress

    문자열

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

  • remotePort

    숫자

    패킷이 전송되는 호스트의 포트입니다.

  • socketId

    숫자

    소켓 ID.

SendInfo

속성

  • bytesSent

    숫자 선택사항

    전송된 바이트 수입니다 (결과 == 0인 경우).

  • resultCode

    숫자

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

SocketInfo

속성

  • bufferSize

    숫자 선택사항

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

  • localAddress

    문자열(선택사항)

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

  • localPort

    숫자 선택사항

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

  • 이름

    문자열(선택사항)

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

  • 일시중지됨

    부울

    소켓이 onReceived 이벤트 실행을 차단했는지 여부를 나타내는 플래그.

  • 영구

    부울

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

  • socketId

    숫자

    소켓 식별자입니다.

SocketProperties

속성

  • bufferSize

    숫자 선택사항

    데이터를 수신하는 데 사용되는 버퍼의 크기. 버퍼가 너무 작아 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.

  • 주소

    문자열

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

  • 포트

    숫자

    로컬 머신의 포트입니다. '0' 사용 여유 포트에 바인딩해야 합니다

  • 콜백

    함수

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

    (result: number) => void

    • 결과

      숫자

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

close()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)

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

매개변수

  • socketId

    숫자

    소켓 ID.

  • 콜백

    함수 선택사항

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

    () => void

반환 값

  • 프로미스<void>

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

create()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)

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

매개변수

  • 속성

    SocketProperties 선택사항

    소켓 속성 (선택사항)

  • 콜백

    함수 선택사항

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

    (createInfo: CreateInfo) => void

    • createInfo

      소켓 생성 결과입니다.

반환 값

  • Promise&lt;CreateInfo&gt;

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

getInfo()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)

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

매개변수

  • socketId

    숫자

    소켓 ID.

  • 콜백

    함수 선택사항

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

    (socketInfo: SocketInfo) => void

    • socketInfo

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

반환 값

  • Promise&lt;SocketInfo&gt;

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

getJoinedGroups()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

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

매개변수

  • socketId

    숫자

    소켓 ID.

  • 콜백

    함수 선택사항

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

    (groups: string[]) => void

    • 그룹

      문자열[]

      소켓이 조인된 그룹의 배열입니다.

반환 값

  • Promise&lt;string[]&gt;

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

getSockets()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.getSockets(
  callback?: function,
)

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

매개변수

  • 콜백

    함수 선택사항

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

    (socketInfos: SocketInfo[]) => void

    • socketInfos

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

반환 값

  • Promise&lt;SocketInfo[]&gt;

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

joinGroup()

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

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

매개변수

  • socketId

    숫자

    소켓 ID.

  • 주소

    문자열

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

  • 콜백

    함수

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

    (result: number) => void

    • 결과

      숫자

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

leaveGroup()

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

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

그룹을 탈퇴하면 호스트의 다른 프로세스가 그룹에 가입되어 있지 않다고 가정할 때 라우터가 멀티캐스트 데이터그램을 로컬 호스트로 전송하지 못합니다.

매개변수

  • socketId

    숫자

    소켓 ID.

  • 주소

    문자열

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

  • 콜백

    함수

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

    (result: number) => void

    • 결과

      숫자

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

send()

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

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

매개변수

  • socketId

    숫자

    소켓 ID.

  • 데이터

    배열 버퍼

    전송할 데이터입니다.

  • 주소

    문자열

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

  • 포트

    숫자

    원격 머신의 포트입니다.

  • 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.

  • 사용 설정됨

    부울

    브로드캐스트 패킷을 사용 설정하려면 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.

  • 사용 설정됨

    부울

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

  • 콜백

    함수

    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()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)

소켓을 일시중지하거나 일시중지를 해제합니다. 일시중지된 소켓이 onReceive 이벤트 실행이 차단되었습니다.

매개변수

  • socketId

    숫자

  • 일시중지됨

    부울

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

  • 콜백

    함수 선택사항

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

    () => void

반환 값

  • 프로미스<void>

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

update()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)

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

매개변수

  • socketId

    숫자

    소켓 ID.

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

  • 콜백

    함수 선택사항

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

    () => void

반환 값

  • 프로미스<void>

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

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

이벤트

onReceive

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

지정된 소켓의 UDP 패킷이 수신되면 이벤트가 발생합니다.

매개변수

  • 콜백

    함수

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

    (info: ReceiveInfo) => void

onReceiveError

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

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

매개변수