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 소켓의 경우 원격 피어가 연결 해제되더라도 이 속성은 계속 true로 유지됩니다. 그러면 소켓을 읽거나 쓰는 중에 오류가 발생하여 이 소켓을 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,
)

이 메서드는 TCP 소켓에만 적용됩니다. 이 수신 대기 서버 소켓에서 연결이 수락될 때 호출할 콜백 함수를 등록합니다. 먼저 Listen을 호출해야 합니다. 이미 활성 상태인 accept 콜백이 있는 경우 이 콜백은 resultCode로 오류를 사용하여 즉시 호출됩니다.

매개변수

  • socketId

    숫자

    socketId입니다.

  • 콜백

    함수

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

    (acceptInfo: AcceptInfo) => void

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

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

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

매개변수

  • 유형

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

  • 옵션

    CreateOptions 선택사항

    소켓 옵션

  • 콜백

    함수 선택사항

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

    (createInfo: CreateInfo) => void

반환 값

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

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

Promise
chrome.socket.getNetworkList(
  callback?: function,
)

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

매개변수

반환 값

  • 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

recvFrom()

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

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

매개변수

  • socketId

    숫자

    socketId입니다.

  • bufferSize

    번호 선택사항

    수신 버퍼 크기입니다.

  • 콜백

    함수

    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

    쓸 데이터입니다.

  • 주소

    문자열

    원격 머신의 주소입니다.

  • 포트

    숫자

    원격 컴퓨터의 포트입니다.

  • 콜백

    함수

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

    (writeInfo: WriteInfo) => void

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

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

매개변수

  • socketId

    숫자

    socketId입니다.

  • 데이터

    ArrayBuffer

    쓸 데이터입니다.

  • 콜백

    함수

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

    (writeInfo: WriteInfo) => void