chrome.socket

설명

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

속성

SocketInfo

속성

  • 연결됨

    부울

    기본 소켓이 연결되어 있는지 여부입니다.

    tcp 소켓의 경우 원격 피어가 연결 해제된 경우에도 이 상태가 유지됩니다. 소켓을 읽거나 쓰면 오류가 발생할 수 있으며, 이는 이 소켓이 disconnect()를 통해 연결 해제되어야 함을 나타냅니다.

    udp 소켓의 경우 이는 패킷 읽기 및 쓰기에 기본 원격 주소가 지정되었는지 여부만 나타냅니다.

  • localAddress

    문자열 선택사항

    기본 소켓이 바인딩되거나 연결된 경우 로컬 IPv4/6 주소를 포함합니다.

  • localPort

    번호 선택사항

    기본 소켓이 바인딩되거나 연결된 경우 로컬 포트를 포함합니다.

  • peerAddress

    문자열 선택사항

    기본 소켓이 연결된 경우 피어의 IPv4/6 주소를 포함합니다.

  • peerPort

    번호 선택사항

    기본 소켓이 연결된 경우 연결된 피어의 포트를 포함합니다.

  • socketType

    전달된 소켓의 유형입니다. tcp 또는 udp입니다.

SocketType

열거형

"tcp"

"udp"

TLSVersionConstraints

속성

  • 최대

    문자열 선택사항

  • 문자열 선택사항

    허용되는 최소 및 최대 TLS 버전입니다. 지원되는 값은 tls1.2 또는 tls1.3입니다.

    tls1tls1.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

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()

Promise
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

지정된 원격 머신에 연결되는 지정된 유형의 소켓을 만듭니다.

매개변수

  • 유형

    만들 소켓의 유형입니다. tcp 또는 udp여야 합니다.

  • 옵션

    CreateOptions 선택사항

    소켓 옵션입니다.

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (createInfo: CreateInfo) => void

반환 값

  • 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()

Promise
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()

Promise
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

이 시스템의 로컬 어댑터에 관한 정보를 가져옵니다.

매개변수

반환 값

  • 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

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

지정된 UDP 소켓에서 데이터를 수신합니다.

매개변수

  • socketId

    숫자

    socketId입니다.

  • bufferSize

    번호 선택사항

    수신 버퍼 크기입니다.

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    (recvFromInfo: RecvFromInfo) => void

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

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

지정된 연결된 소켓에 데이터를 씁니다.

매개변수

  • socketId

    숫자

    socketId입니다.

  • 데이터

    ArrayBuffer

    쓸 데이터입니다.

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    (writeInfo: WriteInfo) => void