설명
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를 강제합니다.
열거형
'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,
)
소켓의 로컬 주소와 포트를 바인딩합니다. 클라이언트 소켓의 경우 포트 0을 사용하여 플랫폼에서 사용 가능한 포트를 선택하도록 하는 것이 좋습니다.
bind
작업이 성공적으로 완료되면 UDP 패킷이 지정된 주소/포트에 도착할 때 onReceive
이벤트가 발생합니다(소켓이 일시중지되지 않는 한).
매개변수
-
socketId
숫자
소켓 ID입니다.
-
주소
문자열
로컬 머신의 주소입니다. 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 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
)
지정된 속성으로 UDP 소켓을 만듭니다.
매개변수
-
속성
SocketProperties 선택사항
소켓 속성 (선택사항)
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(createInfo: CreateInfo) => void
-
createInfo
소켓 생성 결과입니다.
-
반환 값
-
Promise<CreateInfo>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
)
지정된 소켓의 상태를 가져옵니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(socketInfo: SocketInfo) => void
-
socketInfo
소켓 정보를 포함하는 객체입니다.
-
반환 값
-
Promise<SocketInfo>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getJoinedGroups()
chrome.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
)
소켓이 현재 조인된 멀티캐스트 그룹 주소를 가져옵니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(groups: string[]) => void
-
그룹
문자열[]
소켓이 가입한 그룹의 배열입니다.
-
반환 값
-
Promise<string[]>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
)
애플리케이션이 소유한 현재 열려 있는 소켓의 목록을 가져옵니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(socketInfos: SocketInfo[]) => void
-
socketInfos
소켓 정보를 포함하는 객체 배열입니다.
-
반환 값
-
Promise<SocketInfo[]>
Chrome 121 이상Promise는 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입니다.
-
데이터
ArrayBuffer
전송할 데이터입니다.
-
주소
문자열
원격 머신의 주소입니다.
-
포트
숫자
원격 컴퓨터의 포트입니다.
-
dnsQueryType
DnsQueryType 선택사항
Chrome 103 이상주소 확인 환경설정입니다.
-
콜백
함수
callback
매개변수는 다음과 같습니다.(sendInfo: SendInfo) => void
-
sendInfo
send
메서드의 결과입니다.
-
setBroadcast()
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와 유닉스 계열 시스템 간에 약간 다릅니다. 이 불일치는 동일한 호스트에 동일한 멀티캐스트 그룹에 가입된 애플리케이션이 두 개 이상 있고 멀티캐스트 루프백 모드에 서로 다른 설정이 있는 경우에만 발생합니다. Windows에서는 루프백이 사용 중지된 애플리케이션이 루프백 패킷을 수신하지 않습니다. 반면 유닉스 계열 시스템에서는 루프백이 사용 중지된 애플리케이션이 동일한 호스트의 다른 애플리케이션에 루프백 패킷을 전송하지 않습니다. 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()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
)
소켓을 일시중지하거나 일시중지 해제합니다. 일시중지된 소켓은 onReceive
이벤트를 실행하지 못하도록 차단됩니다.
매개변수
-
socketId
숫자
-
일시중지됨
부울
일시중지 또는 일시중지 해제 여부를 나타내는 플래그입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
update()
chrome.sockets.udp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
)
소켓 속성을 업데이트합니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
업데이트할 속성입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 121 이상Promise는 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