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