chrome.socket

설명

chrome.socket API를 사용하여 TCP 및 UDP 연결을 사용하는 네트워크를 통해 데이터를 주고받습니다. 참고: Chrome 33부터 이 API는 지원 중단되며 sockets.udp, sockets.tcp, sockets.tcpServer API로 대체됩니다.

권한

socket

유형

AcceptInfo

속성

  • resultCode

    숫자

  • socketId

    number 선택사항

    허용된 소켓의 ID입니다.

CreateInfo

속성

  • socketId

    숫자

    새로 생성된 소켓의 ID입니다.

CreateOptions

NetworkInterface

속성

  • 주소

    string

    사용 가능한 IPv4/6 주소입니다.

  • 이름

    string

    어댑터의 기본 이름입니다. *nix에서는 일반적으로 'eth0', 'lo' 등입니다.

  • prefixLength

    숫자

    프리픽스 길이

ReadInfo

속성

  • 데이터

    ArrayBuffer

  • resultCode

    숫자

    기본 read() 호출에서 반환된 resultCode입니다.

RecvFromInfo

속성

  • 주소

    string

    원격 시스템의 주소입니다.

  • 데이터

    ArrayBuffer

  • 포트

    숫자

  • resultCode

    숫자

    기본 recvfrom() 호출에서 반환된 resultCode입니다.

SecureOptions

속성

SocketInfo

속성

  • 연결됨

    boolean

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

    tcp 소켓의 경우 원격 피어의 연결이 끊겨도 이 설정이 true로 유지됩니다. 그러면 소켓을 읽거나 쓰면 오류가 발생할 수 있으며, 이 경우 disconnect()를 통해 이 소켓의 연결을 해제해야 함을 나타냅니다.

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

  • localAddress

    문자열 선택사항

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

  • localPort

    number 선택사항

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

  • peerAddress

    문자열 선택사항

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

  • peerPort

    number 선택사항

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

  • socketType

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

SocketType

열거형

"udp"

TLSVersionConstraints

속성

  • max

    문자열 선택사항

  • 문자열 선택사항

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

    tls1tls1.1 값은 더 이상 지원되지 않습니다. min가 이러한 값 중 하나로 설정되면 자동으로 tls1.2로 고정됩니다. max가 이러한 값 중 하나 또는 인식할 수 없는 다른 값으로 설정되면 자동으로 무시됩니다.

WriteInfo

속성

  • bytesWritten

    숫자

    전송된 바이트 수 또는 음수 오류 코드입니다.

방법

accept()

chrome.socket.accept(
  socketId: number,
  callback: function,
)

이 메서드는 TCP 소켓에만 적용됩니다. 이 수신 서버 소켓에서 연결이 수락될 때 호출할 콜백 함수를 등록합니다. Listen을 먼저 호출해야 합니다. 활성 수락 콜백이 이미 있는 경우 이 콜백은 즉시 호출되며 오류( resultCode )가 표시됩니다.

매개변수

  • socketId

    숫자

    socketId.

  • 콜백

    기능

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

    (acceptInfo: AcceptInfo)=>void

bind()

chrome.socket.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

소켓의 로컬 주소를 바인딩합니다. 현재 TCP 소켓은 지원하지 않습니다.

매개변수

  • socketId

    숫자

    socketId.

  • 주소

    string

    로컬 머신의 주소입니다.

  • 포트

    숫자

    로컬 머신의 포트입니다.

  • 콜백

    기능

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

    (result: number)=>void

    • 결과

      숫자

connect()

chrome.socket.connect(
  socketId: number,
  hostname: string,
  port: number,
  callback: function,
)

소켓을 원격 머신에 연결합니다 (tcp 소켓의 경우). udp 소켓의 경우 read()write() 호출 시 패킷을 보내고 읽을 수 있는 기본 주소를 설정합니다.

매개변수

  • socketId

    숫자

    socketId.

  • hostname

    string

    원격 머신의 호스트 이름 또는 IP 주소입니다.

  • 포트

    숫자

    원격 머신의 포트입니다.

  • 콜백

    기능

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

    (result: number)=>void

    • 결과

      숫자

create()

프로미스
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)

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

매개변수

  • 유형

    생성할 소켓 유형입니다. tcp 또는 udp여야 합니다.

  • 옵션

    CreateOptions 선택사항

    소켓 옵션

  • 콜백

    함수 선택사항

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

    (createInfo: CreateInfo)=>void

반환 값

  • Promise<CreateInfo>

    Chrome 121 이상

    프로미스는 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 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)

소켓이 현재 연결된 멀티캐스트 그룹 주소를 가져옵니다.

매개변수

  • socketId

    숫자

    socketId.

  • 콜백

    기능

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

    (groups: string[])=>void

    • 그룹

      문자열[]

getNetworkList()

프로미스
chrome.socket.getNetworkList(
  callback?: function,
)

이 시스템의 로컬 어댑터에 대한 정보를 검색합니다.

매개변수

반환 값

  • Promise<NetworkInterface[]>

    Chrome 121 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

joinGroup()

chrome.socket.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

멀티캐스트 그룹에 참여하고 이 그룹에서 패킷을 받기 시작합니다. 소켓은 UDP 유형이어야 하며 이 메서드를 호출하기 전에 로컬 포트에 바인딩해야 합니다.

매개변수

  • socketId

    숫자

    socketId.

  • 주소

    string

    가입할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.

  • 콜백

    기능

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

    (result: number)=>void

    • 결과

      숫자

leaveGroup()

chrome.socket.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)

joinGroup를 사용하여 이전에 연결된 멀티캐스트 그룹에서 탈퇴합니다. 소켓을 제거하거나 종료하기 전에 멀티캐스트 그룹을 탈퇴할 필요가 없습니다. 이 메서드는 OS에서 자동으로 호출합니다.

그룹을 탈퇴하면 라우터가 로컬 호스트에 멀티캐스트 데이터그램을 전송할 수 없으며 호스트의 다른 프로세스가 그룹에 아직 연결되지 않았다고 가정합니다.

매개변수

  • socketId

    숫자

    socketId.

  • 주소

    string

    탈퇴할 그룹 주소입니다. 도메인 이름은 지원되지 않습니다.

  • 콜백

    기능

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

    (result: number)=>void

    • 결과

      숫자

listen()

chrome.socket.listen(
  socketId: number,
  address: string,
  port: number,
  backlog?: number,
  callback: function,
)

이 메서드는 TCP 소켓에만 적용됩니다. 지정된 포트 및 주소의 연결을 리슨합니다. 이는 사실상 서버 소켓이 되며 클라이언트 소켓 기능 (연결, 읽기, 쓰기)을 더 이상 이 소켓에서 사용할 수 없게 됩니다.

매개변수

  • socketId

    숫자

    socketId.

  • 주소

    string

    로컬 머신의 주소입니다.

  • 포트

    숫자

    로컬 머신의 포트입니다.

  • 백로그

    number 선택사항

    소켓의 수신 대기 대기열 길이

  • 콜백

    기능

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

    (result: number)=>void

    • 결과

      숫자

read()

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

지정된 연결된 소켓에서 데이터를 읽습니다.

매개변수

  • socketId

    숫자

    socketId.

  • bufferSize

    number 선택사항

    읽기 버퍼 크기입니다.

  • 콜백

    기능

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

    (readInfo: ReadInfo)=>void

recvFrom()

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

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

매개변수

  • socketId

    숫자

    socketId.

  • bufferSize

    number 선택사항

    수신 버퍼 크기입니다.

  • 콜백

    기능

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

    (recvFromInfo: RecvFromInfo)=>void

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

    쓸 데이터입니다.

  • 주소

    string

    원격 시스템의 주소입니다.

  • 포트

    숫자

    원격 머신의 포트입니다.

  • 콜백

    기능

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

    (writeInfo: WriteInfo)=>void

setKeepAlive()

chrome.socket.setKeepAlive(
  socketId: number,
  enable: boolean,
  delay?: number,
  callback: function,
)

TCP 연결의 연결 유지 기능을 사용 설정하거나 사용 중지합니다.

매개변수

  • socketId

    숫자

    socketId.

  • enable

    boolean

    true인 경우 연결 유지 기능을 사용 설정합니다.

  • delay

    number 선택사항

    수신된 마지막 데이터 패킷과 첫 번째 연결 유지 프로브 사이의 지연 시간(초)을 설정합니다. 기본값은 0입니다.

  • 콜백

    기능

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

    (result: boolean)=>void

    • 결과

      boolean

setMulticastLoopbackMode()

chrome.socket.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)

호스트에서 멀티캐스트 그룹으로 전송된 멀티캐스트 패킷을 호스트에서 루프백할지 여부를 설정합니다.

참고: setMulticastLoopbackMode의 동작은 Windows와 Unix 계열 시스템에서 약간 다릅니다. 비일관성은 같은 호스트에 두 개 이상의 애플리케이션이 멀티캐스트 루프백 모드에 서로 다른 설정을 사용하면서 동일한 멀티캐스트 그룹에 연결된 경우에만 발생합니다. Windows에서 루프백이 해제된 애플리케이션은 루프백 패킷을 수신하지 않습니다. 반면 Unix와 유사한 시스템에서는 루프백이 꺼진 애플리케이션이 루프백 패킷을 동일한 호스트의 다른 애플리케이션으로 전송하지 않습니다. MSDN을 확인하세요. http://goo.gl/6vqbj

이 메서드를 호출하는 데는 멀티캐스트 권한이 필요하지 않습니다.

매개변수

  • socketId

    숫자

    socketId.

  • 사용 설정됨

    boolean

    루프백 모드 사용 여부를 나타냅니다.

  • 콜백

    기능

    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

    boolean

    true인 경우 Nagle 알고리즘이 사용 중지됩니다.

  • 콜백

    기능

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

    (result: boolean)=>void

    • 결과

      boolean

write()

chrome.socket.write(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)

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

매개변수

  • socketId

    숫자

    socketId.

  • 데이터

    ArrayBuffer

    쓸 데이터입니다.

  • 콜백

    기능

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

    (writeInfo: WriteInfo)=>void