설명
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
number 선택사항
전송된 바이트 수 (결과 == 0인 경우)
-
resultCode
숫자
기본 네트워크 호출에서 반환된 결과 코드입니다. 음수 값은 오류를 나타냅니다.
SocketInfo
속성
-
bufferSize
number 선택사항
데이터를 수신하는 데 사용되는 버퍼의 크기입니다. 버퍼 사이즈가 명시적으로 지정되지 않은 경우 값이 제공되지 않습니다.
-
localAddress
문자열 선택사항
기본 소켓이 바인딩된 경우 로컬 IPv4/6 주소를 포함합니다.
-
localPort
number 선택사항
기본 소켓이 바인딩된 경우 로컬 포트를 포함합니다.
-
이름
문자열 선택사항
소켓과 연결된 애플리케이션 정의 문자열입니다.
-
일시중지됨
부울
소켓이 onReceive 이벤트를 실행하지 못하도록 차단되었는지 여부를 나타내는 플래그입니다.
-
영구
부울
애플리케이션이 정지될 때 소켓이 열려 있는지 여부를 나타내는 플래그입니다(
SocketProperties.persistent참고). -
socketId
숫자
소켓 식별자입니다.
SocketProperties
속성
-
bufferSize
number 선택사항
데이터를 수신하는 데 사용되는 버퍼의 크기입니다. 버퍼가 너무 작아 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()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
소켓을 닫고 소켓이 바인딩된 주소/포트를 해제합니다. 생성된 각 소켓은 사용 후 닫아야 합니다. 함수가 호출되는 즉시 소켓 ID가 더 이상 유효하지 않습니다. 하지만 소켓은 콜백이 호출될 때만 닫힙니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.() => void
반환 값
-
약속<void>
Chrome 121 이상프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
지정된 속성으로 UDP 소켓을 만듭니다.
매개변수
-
속성
SocketProperties 선택사항
소켓 속성 (선택사항)입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.(createInfo: CreateInfo) => void
-
createInfo
소켓 생성 결과입니다.
-
반환 값
-
Promise<CreateInfo>
Chrome 121 이상프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
지정된 소켓의 상태를 가져옵니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.(socketInfo: SocketInfo) => void
-
socketInfo
소켓 정보가 포함된 객체입니다.
-
반환 값
-
Promise<SocketInfo>
Chrome 121 이상프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getJoinedGroups()
chrome.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
소켓이 현재 가입된 멀티캐스트 그룹 주소를 가져옵니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.(groups: string[]) => void
-
그룹
문자열[]
소켓이 가입한 그룹의 배열입니다.
-
반환 값
-
Promise<string[]>
Chrome 121 이상프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
애플리케이션이 소유한 현재 열려 있는 소켓 목록을 가져옵니다.
매개변수
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.(socketInfos: SocketInfo[]) => void
-
socketInfos
소켓 정보가 포함된 객체 배열입니다.
-
반환 값
-
Promise<SocketInfo[]>
Chrome 121 이상프로미스는 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.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()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
소켓을 일시중지하거나 재개합니다. 일시중지된 소켓은 onReceive 이벤트를 실행하지 못하도록 차단됩니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
일시중지됨
부울
일시중지할지 또는 일시중지 해제할지 나타내는 플래그입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.() => void
반환 값
-
약속<void>
Chrome 121 이상프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
update()
chrome.sockets.udp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
): Promise<void>
소켓 속성을 업데이트합니다.
매개변수
-
socketId
숫자
소켓 ID입니다.
-
업데이트할 속성입니다.
-
callback
함수 선택사항
callback매개변수는 다음과 같습니다.() => void
반환 값
-
약속<void>
Chrome 121 이상프로미스는 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 이벤트가 발생하지 않습니다.
매개변수
-
callback
함수
callback매개변수는 다음과 같습니다.(info: ReceiveErrorInfo) => void