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를 강제합니다.

열거형

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

속성

  • resultCode

    숫자

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

  • socketId

    숫자

    소켓 ID입니다.

ReceiveInfo

속성

  • 데이터

    ArrayBuffer

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

  • remoteAddress

    문자열

    패킷이 전송된 호스트의 주소입니다.

  • remotePort

    숫자

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

  • socketId

    숫자

    소켓 ID입니다.

SendInfo

속성

  • bytesSent

    번호 선택사항

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

  • resultCode

    숫자

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

SocketInfo

속성

  • bufferSize

    번호 선택사항

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

  • localAddress

    문자열 선택사항

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

  • localPort

    번호 선택사항

    기본 소켓이 바인드된 경우 로컬 포트를 포함합니다.

  • 이름

    문자열 선택사항

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

  • 일시중지됨

    부울

    소켓이 onReceive 이벤트를 트리거하지 못하도록 차단되었는지 여부를 나타내는 플래그입니다.

  • 영구

    부울

    애플리케이션이 일시 중지될 때 소켓이 열린 상태로 유지되는지 여부를 나타내는 플래그입니다 (SocketProperties.persistent 참고).

  • socketId

    숫자

    소켓 식별자입니다.

SocketProperties

속성

  • bufferSize

    번호 선택사항

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

  • 이름

    문자열 선택사항

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

  • 영구

    불리언 선택사항

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

메서드

bind()

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

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

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 주소

    문자열

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

  • 포트

    숫자

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

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

close()

Promise
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • callback

    함수 선택사항

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

    () => void

반환 값

  • Promise<void>

    Chrome 121 이상

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

create()

Promise
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

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

매개변수

  • 속성

    SocketProperties 선택사항

    소켓 속성 (선택사항)입니다.

  • callback

    함수 선택사항

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

    (createInfo: CreateInfo) => void

    • createInfo

      소켓 생성 결과입니다.

반환 값

  • Promise<CreateInfo>

    Chrome 121 이상

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

getInfo()

Promise
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

지정된 소켓의 상태를 가져옵니다.

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • callback

    함수 선택사항

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

    (socketInfo: SocketInfo) => void

    • socketInfo

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

반환 값

  • Promise<SocketInfo>

    Chrome 121 이상

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

getJoinedGroups()

Promise
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • callback

    함수 선택사항

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

    (groups: string[]) => void

    • 그룹

      문자열[]

      소켓이 가입한 그룹의 배열입니다.

반환 값

  • Promise<string[]>

    Chrome 121 이상

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

getSockets()

Promise
chrome.sockets.udp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

애플리케이션이 소유한 현재 열려 있는 소켓 목록을 가져옵니다.

매개변수

  • callback

    함수 선택사항

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

    (socketInfos: SocketInfo[]) => void

    • socketInfos

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

반환 값

  • Promise<SocketInfo[]>

    Chrome 121 이상

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

joinGroup()

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

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 주소

    문자열

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

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

leaveGroup()

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

이전에 joinGroup를 사용하여 참여한 멀티캐스트 그룹에서 나갑니다. 소켓이 닫힐 때 OS에서 자동으로 실행되므로 소켓을 계속 사용하려는 경우에만 호출하면 됩니다.

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 주소

    문자열

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

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

send()

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

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 데이터

    ArrayBuffer

    전송할 데이터입니다.

  • 주소

    문자열

    원격 머신의 주소입니다.

  • 포트

    숫자

    원격 컴퓨터의 포트입니다.

  • dnsQueryType

    DnsQueryType 선택사항

    Chrome 103 이상

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

  • callback

    함수

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

    (sendInfo: SendInfo) => void

    • sendInfo

      send 메서드의 결과입니다.

setBroadcast()

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

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 사용 설정됨

    부울

    true를 사용하여 브로드캐스트 패킷을 사용 설정하고 false를 사용하여 사용 중지합니다.

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

setMulticastLoopbackMode()

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

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

참고: setMulticastLoopbackMode의 동작은 Windows와 Unix 계열 시스템 간에 약간 다릅니다. 불일치는 멀티캐스트 루프백 모드에 서로 다른 설정이 있는 동안 동일한 호스트에 동일한 멀티캐스트 그룹에 가입된 애플리케이션이 두 개 이상 있는 경우에만 발생합니다. Windows에서는 루프백이 사용 중지된 애플리케이션이 루프백 패킷을 수신하지 않습니다. Unix와 유사한 시스템에서는 루프백이 사용 중지된 애플리케이션이 동일한 호스트의 다른 애플리케이션에 루프백 패킷을 전송하지 않습니다. MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2 참고

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • 사용 설정됨

    부울

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

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

setMulticastTimeToLive()

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

멀티캐스트 그룹으로 전송된 멀티캐스트 패킷의 TTL을 설정합니다.

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

  • ttl

    숫자

    TTL(수명) 값입니다.

  • callback

    함수

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

    (result: number) => void

    • 결과

      숫자

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

setPaused()

Promise
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

소켓을 일시중지하거나 일시중지 해제합니다. 일시중지된 소켓은 onReceive 이벤트를 트리거할 수 없습니다.

매개변수

  • socketId

    숫자

  • 일시중지됨

    부울

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

  • callback

    함수 선택사항

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

    () => void

반환 값

  • Promise<void>

    Chrome 121 이상

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

update()

Promise
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

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

매개변수

  • socketId

    숫자

    소켓 ID입니다.

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

  • callback

    함수 선택사항

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

    () => void

반환 값

  • Promise<void>

    Chrome 121 이상

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

이벤트

onReceive

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

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

매개변수

  • callback

    함수

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

    (info: ReceiveInfo) => void

onReceiveError

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

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

매개변수