설명
chrome.sockets.udp
API를 사용하여 UDP 연결을 사용하는 네트워크를 통해 데이터를 주고받습니다. 이 API는 이전에 '소켓' API에 있던 UDP 기능을 대체합니다.
매니페스트
유형
CreateInfo
속성
-
socketId
숫자
새로 생성된 소켓의 ID입니다. 이 API에서 생성된 소켓 ID는 지원 중단된
[
socket](../socket/)
API 등 다른 API에서 생성된 소켓 ID와 호환되지 않습니다.
DnsQueryType
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.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 패킷이 수신되면 발생하는 이벤트입니다.
매개변수
-
콜백
기능
callback
매개변수는 다음과 같습니다.(info: ReceiveInfo) => void
-
정보
-
onReceiveError
chrome.sockets.udp.onReceiveError.addListener(
callback: function,
)
런타임이 소켓 주소와 포트의 데이터를 기다리는 동안 네트워크 오류가 발생하면 이벤트가 발생합니다. 이 이벤트가 발생하면 소켓이 일시중지되고 소켓이 다시 시작될 때까지 이 소켓에 대해 더 이상 onReceive
이벤트가 발생하지 않습니다.
매개변수
-
콜백
기능
callback
매개변수는 다음과 같습니다.(info: ReceiveErrorInfo) => void