설명
chrome.socket
API를 사용하여 TCP 및 UDP 연결을 통해 네트워크를 통해 데이터를 보내고 받습니다. 참고: Chrome 33부터 이 API는 sockets.udp
, sockets.tcp
, sockets.tcpServer
API를 대신하여 지원 중단됩니다.
권한
socket
유형
AcceptInfo
속성
-
resultCode
숫자
-
socketId
번호 선택사항
수락된 소켓의 ID입니다.
CreateInfo
속성
-
socketId
숫자
새로 생성된 소켓의 ID입니다.
CreateOptions
NetworkInterface
속성
-
주소
문자열
사용 가능한 IPv4/6 주소입니다.
-
이름
문자열
어댑터의 기본 이름입니다. *nix에서는 일반적으로 'eth0', 'lo' 등이 됩니다.
-
prefixLength
숫자
접두사 길이
ReadInfo
속성
-
데이터
ArrayBuffer
-
resultCode
숫자
기본 read() 호출에서 반환된 resultCode입니다.
RecvFromInfo
속성
-
주소
문자열
원격 머신의 주소입니다.
-
데이터
ArrayBuffer
-
포트
숫자
-
resultCode
숫자
기본 recvfrom() 호출에서 반환된 resultCode입니다.
SecureOptions
속성
-
tlsVersion
SocketInfo
속성
-
연결됨
부울
기본 소켓이 연결되어 있는지 여부입니다.
tcp
소켓의 경우 원격 피어가 연결 해제된 경우에도 이 상태가 유지됩니다. 소켓을 읽거나 쓰면 오류가 발생할 수 있으며, 이는 이 소켓이disconnect()
를 통해 연결 해제되어야 함을 나타냅니다.udp
소켓의 경우 이는 패킷 읽기 및 쓰기에 기본 원격 주소가 지정되었는지 여부만 나타냅니다. -
localAddress
문자열 선택사항
기본 소켓이 바인딩되거나 연결된 경우 로컬 IPv4/6 주소를 포함합니다.
-
localPort
번호 선택사항
기본 소켓이 바인딩되거나 연결된 경우 로컬 포트를 포함합니다.
-
peerAddress
문자열 선택사항
기본 소켓이 연결된 경우 피어의 IPv4/6 주소를 포함합니다.
-
peerPort
번호 선택사항
기본 소켓이 연결된 경우 연결된 피어의 포트를 포함합니다.
-
socketType
전달된 소켓의 유형입니다.
tcp
또는udp
입니다.
SocketType
열거형
"tcp"
"udp"
TLSVersionConstraints
속성
-
최대
문자열 선택사항
-
분
문자열 선택사항
허용되는 최소 및 최대 TLS 버전입니다. 지원되는 값은
tls1.2
또는tls1.3
입니다.tls1
및tls1.1
값은 더 이상 지원되지 않습니다.min
이 이러한 값 중 하나로 설정되면 자동으로tls1.2
로 고정됩니다.max
가 이러한 값 중 하나 또는 인식할 수 없는 다른 값으로 설정된 경우 자동으로 무시됩니다.
WriteInfo
속성
-
bytesWritten
숫자
전송된 바이트 수 또는 음수 오류 코드입니다.
메서드
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
이 메서드는 TCP 소켓에만 적용됩니다. 이 수신 서버 소켓에서 연결이 수락될 때 호출할 콜백 함수를 등록합니다. listen이 먼저 호출되어야 합니다. 이미 활성 상태의 수락 콜백이 있는 경우 이 콜백은 resultCode가 오류인 상태로 즉시 호출됩니다.
매개변수
-
socketId
숫자
socketId입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
소켓의 로컬 주소를 바인딩합니다. 현재 TCP 소켓은 지원되지 않습니다.
매개변수
-
socketId
숫자
socketId입니다.
-
주소
문자열
로컬 머신의 주소입니다.
-
포트
숫자
로컬 머신의 포트입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
소켓을 원격 머신에 연결합니다 (tcp
소켓의 경우). udp
소켓의 경우 이는 read()
및 write()
호출에 대해 패킷이 전송되고 읽어오는 기본 주소를 설정합니다.
매개변수
-
socketId
숫자
socketId입니다.
-
hostname
문자열
원격 머신의 호스트 이름 또는 IP 주소입니다.
-
포트
숫자
원격 컴퓨터의 포트입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
지정된 원격 머신에 연결되는 지정된 유형의 소켓을 만듭니다.
매개변수
-
유형
만들 소켓의 유형입니다.
tcp
또는udp
여야 합니다. -
옵션
CreateOptions 선택사항
소켓 옵션입니다.
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(createInfo: CreateInfo) => void
-
createInfo
-
반환 값
-
Promise<CreateInfo>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
destroy()
chrome.socket.destroy(
socketId: number,
): void
소켓을 소멸시킵니다. 생성된 각 소켓은 사용 후 소멸되어야 합니다.
매개변수
-
socketId
숫자
socketId입니다.
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
소켓을 연결 해제합니다. UDP 소켓의 경우 disconnect
는 작업이 아니지만 호출해도 안전합니다.
매개변수
-
socketId
숫자
socketId입니다.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
지정된 소켓의 상태를 가져옵니다.
매개변수
-
socketId
숫자
socketId입니다.
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(result: SocketInfo) => void
-
결과
-
반환 값
-
Promise<SocketInfo>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
소켓이 현재 참여한 멀티캐스트 그룹 주소를 가져옵니다.
매개변수
-
socketId
숫자
socketId입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(groups: string[]) => void
-
그룹
문자열[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
이 시스템의 로컬 어댑터에 관한 정보를 가져옵니다.
매개변수
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(result: NetworkInterface[]) => void
-
결과
-
반환 값
-
Promise<NetworkInterface[]>
Chrome 121 이상Promise는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
): void
멀티캐스트 그룹에 참여하고 해당 그룹에서 패킷을 수신하기 시작합니다. 소켓은 UDP 유형이어야 하며 이 메서드를 호출하기 전에 로컬 포트에 바인드되어야 합니다.
매개변수
-
socketId
숫자
socketId입니다.
-
주소
문자열
가입할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
joinGroup
를 사용하여 이전에 참여한 멀티캐스트 그룹에서 나갑니다. 소켓을 소멸하거나 종료하기 전에 멀티캐스트 그룹을 나갈 필요는 없습니다. 이는 OS에 의해 자동으로 호출됩니다.
그룹에서 나가면 호스트의 다른 프로세스가 그룹에 계속 가입되어 있지 않다고 가정할 때 라우터가 멀티캐스트 데이터그램을 로컬 호스트로 전송하지 않습니다.
매개변수
-
socketId
숫자
socketId입니다.
-
주소
문자열
탈퇴할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
이 메서드는 TCP 소켓에만 적용됩니다. 지정된 포트와 주소에서 연결을 수신 대기합니다. 이렇게 하면 이 소켓이 서버 소켓이 되며 클라이언트 소켓 함수 (connect, read, write)를 이 소켓에서 더 이상 사용할 수 없습니다.
매개변수
-
socketId
숫자
socketId입니다.
-
주소
문자열
로컬 머신의 주소입니다.
-
포트
숫자
로컬 머신의 포트입니다.
-
backlog
번호 선택사항
소켓의 수신 대기열 길이입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
지정된 연결된 소켓에서 데이터를 읽습니다.
매개변수
-
socketId
숫자
socketId입니다.
-
bufferSize
번호 선택사항
읽기 버퍼 크기입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(readInfo: ReadInfo) => void
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
지정된 UDP 소켓에서 데이터를 수신합니다.
매개변수
-
socketId
숫자
socketId입니다.
-
bufferSize
번호 선택사항
수신 버퍼 크기입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
연결된 TCP 클라이언트 소켓을 통해 TLS 클라이언트 연결을 시작합니다.
매개변수
-
socketId
숫자
사용할 연결된 소켓입니다.
-
옵션
SecureOptions 선택사항
TLS 연결의 제약 조건 및 매개변수입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
지정된 UDP 소켓의 데이터를 지정된 주소와 포트로 전송합니다.
매개변수
-
socketId
숫자
socketId입니다.
-
데이터
ArrayBuffer
쓸 데이터입니다.
-
주소
문자열
원격 머신의 주소입니다.
-
포트
숫자
원격 컴퓨터의 포트입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(writeInfo: WriteInfo) => void
-
writeInfo
-
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
TCP 연결의 연결 유지 기능을 사용 설정 또는 사용 중지합니다.
매개변수
-
socketId
숫자
socketId입니다.
-
사용 설정
부울
true인 경우 keep-alive 기능을 사용 설정합니다.
-
delay
번호 선택사항
수신된 마지막 데이터 패킷과 첫 번째 활성 상태 유지 프로브 사이의 지연 시간(초)을 설정합니다. 기본값은 0입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: boolean) => void
-
결과
부울
-
setMulticastLoopbackMode()
chrome.socket.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
숫자
socketId입니다.
-
사용 설정됨
부울
루프백 모드를 사용 설정할지 여부를 나타냅니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
멀티캐스트 그룹으로 전송된 멀티캐스트 패킷의 TTL을 설정합니다.
이 메서드를 호출하는 데는 멀티캐스트 권한이 필요하지 않습니다.
매개변수
-
socketId
숫자
socketId입니다.
-
ttl
숫자
TTL(수명) 값입니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: number) => void
-
결과
숫자
-
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
TCP 연결의 TCP_NODELAY
를 설정하거나 지웁니다. TCP_NODELAY
가 설정되면 Nagle 알고리즘이 사용 중지됩니다.
매개변수
-
socketId
숫자
socketId입니다.
-
noDelay
부울
true인 경우 Nagle 알고리즘을 사용 중지합니다.
-
callback
함수
callback
매개변수는 다음과 같습니다.(result: boolean) => void
-
결과
부울
-
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
지정된 연결된 소켓에 데이터를 씁니다.