클래스: Mongo::Socket Private

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
Socket::상수
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/socket.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/socket/ssl.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/socket/tcp.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/socket/unix.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

드라이버가 사용할 수 있도록 소켓 주위에 추가 데이터를 제공합니다.

이후:

  • 2.0.0

직접 알려진 하위 클래스

SSL, TCP, Unix

네임스페이스 아래에 정의됨

모듈: ocspCache 클래스: ocspVerifier, SSL, TCP, Unix

상수 요약 접기

SSL_ERROR =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

더 이상 사용되지 않습니다.

TLS 관련 예외에 대한 오류 메시지입니다.

이후:

  • 2.0.0

'MongoDB가 TLS 지원으로 구성되지 않았을 수 있습니다.'.동결
TIMEOUT_ERROR =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

더 이상 사용되지 않습니다.

소켓 호출의 시간 초과에 대한 오류 메시지입니다.

이후:

  • 2.0.0

'소켓 요청 시간 초과'.동결
TIMEOUT_PACK =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

시간 초과에 대한 팩 지시문입니다.

이후:

  • 2.0.0

'l_2'.동결
WRITE_CHUNK_SIZE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 크기의 청크 단위로 소켓에 데이터를 씁니다.

이후:

  • 2.0.0

65536

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(timeout, options) ⇒ 소켓

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

공통 소켓 속성을 초기화합니다.

매개변수:

  • 타임아웃 (Float)

    소켓 시간 초과 값입니다.

  • 옵션 (해시)

    옵션.

옵션 해시(options):

  • :connect_timeout (Float)

    연결 시간이 초과되었습니다.

  • :connection_address (주소)

    이 소켓을 생성한 연결의 주소입니다.

  • :connection_generation (정수)

    이 소켓을 생성한 연결의 생성(모니터링이 아닌 연결의 경우)입니다.

  • :monitor (true | false)

    이 소켓이 모니터링 연결에 의해 생성되었는지 여부입니다.

이후:

  • 2.0.0



69
70
71
72
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 69

def 초기화(타임아웃, 옵션)
  @timeout = 타임아웃
  @options = 옵션
end

인스턴스 속성 세부 정보

#family정수 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환 패밀리 호스트 패밀리의 유형입니다.

반환합니다:

  • (정수)

    family 호스팅하다 패밀리의 유형입니다.

이후:

  • 2.0.0



75
76
77
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 75

def family
  @패밀리
end

#options해시 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

옵션을 반환합니다.

반환합니다:

  • (해시)

    옵션.

이후:

  • 2.0.0



81
82
83
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 81

def 옵션
  @options
end

#소켓소켓 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

소켓을 반환합니다. 래핑된 소켓을 반환합니다.

반환합니다:

  • (소켓)

    socket 래핑된 소켓입니다.

이후:

  • 2.0.0



78
79
80
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 78

def 소켓
  @socket
end

#timeoutFloat (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

시간 초과를 반환합니다. 소켓 시간 초과입니다.

반환합니다:

  • (Float)

    timeout 소켓 시간 초과입니다.

이후:

  • 2.0.0



84
85
86
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 84

def 타임아웃
  @timeout
end

인스턴스 메서드 세부 정보

#살아 있나요?true, false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

더 이상 사용되지 않습니다.

#connectable을 사용하시나요? 대신 연결에.

소켓 연결이 활성화되어 있나요?

예시:

소켓이 살아 있나요?

socket.alive?

반환합니다:

  • (true, false)

    소켓이 활성 상태인 경우.

이후:

  • 2.0.0



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 134

def alive?
  sock_arr = [ @socket ]
  만약 Kernel::SELECT(sock_arr, nil, sock_arr, 0)
    # eof? 호출은 선택 이후 즉시 반환되어야 합니다.
    # 소켓을 읽을 수 있음을 나타냅니다. 그러나 @socket이 TLS인 경우
    # socket, eof? 어쨌든 차단할 수 있습니다 - RUBY-2140 참조.
    시작
      시간 초과.타임아웃(0.1) do
        eof?
      end
    구출 ::시간 초과::오류
      true
    end
  other
    true
  end
end

#닫기true

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

소켓을 닫습니다.

예시:

소켓을 닫습니다.

socket.close

반환합니다:

  • (true)

    항상 사실입니다.

이후:

  • 2.0.0



160
161
162
163
164
165
166
167
168
169
170
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 160

def 닫기
  시작
    # 때때로 마감 콜이 오랫동안 중단될 수 있는 것처럼 보입니다.
    ::시간 초과.타임아웃(5) do
      @socket.닫기
    end
  구출
    # 모든 오류 침묵
  end
  true
end

#connectable?true

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

더 이상 사용되지 않습니다.

이전 버전과의 호환성을 위해서만 사용하지 마세요.

반환합니다:

  • (true)

    항상 사실입니다.

이후:

  • 2.0.0



262
263
264
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 262

def 연결 가능?
  true
end

#connection_address주소

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 소켓을 생성한 연결의 주소를 반환합니다.

반환합니다:

  • (주소)

    이 소켓을 생성한 연결의 주소입니다.

이후:

  • 2.0.0



89
90
91
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 89

def connection_address
  옵션[:connection_address]
end

#connection_generation정수

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 소켓을 생성한 연결(모니터링이 아닌 연결의 경우)의 생성을 반환합니다.

반환합니다:

  • (정수)

    이 소켓을 생성한 연결의 생성(모니터링이 아닌 연결의 경우)입니다.

이후:

  • 2.0.0



97
98
99
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 97

def connection_generation
  옵션[:connection_generation]
end

#eof?부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 소켓이 EOF에 도달했는지 테스트합니다. 주로 활성 상태 검사에 사용됩니다.

반환합니다:

  • (부울)

이후:

  • 2.0.5



251
252
253
254
255
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 251

def eof?
  @socket.eof?
구출 IOError, SystemCallError
  true
end

#get(*args) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

위임은 기본 소켓으로 이동합니다.

예시:

다음 줄을 가져옵니다.

socket.gets(10)

매개변수:

  • args (Array<Object>)

    전달할 인수입니다.

반환합니다:

  • (객체)

    반환된 바이트입니다.

이후:

  • 2.0.0



182
183
184
185
186
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 182

def 가져오기(*args)
  map_Exceptions do
    @socket.가져오기(*args)
  end
end

#모니터?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 이 소켓이 모니터링 연결에 의해 생성되었는지 여부를 반환합니다.

반환합니다:

  • (true | false)

    이 소켓이 모니터링 연결에 의해 생성되었는지 여부입니다.

이후:

  • 2.0.0



105
106
107
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 105

def 모니터?
  !!옵션[:monitor]
end

#읽기(Length, timeout: nil) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

제공된 바이트 수만큼 소켓에서 모든 데이터를 읽습니다. 데이터가 반환되지 않으면 예외가 발생합니다.

예시:

소켓에서 요청된 모든 데이터를 읽습니다.

socket.read(4096)

매개변수:

  • 분량 (정수)

    읽을 바이트 수입니다.

  • 타임아웃 (숫자) (기본값: nil)

    각 청크 읽기에 사용할 시간 제한입니다.

반환합니다:

  • (객체)

    소켓의 데이터입니다.

다음을 발생시킵니다.

  • (Mongo::SocketError)

    그렇지 않은 경우 모든 데이터가 반환됩니다.

이후:

  • 2.0.0



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 202

def 읽기(분량, timeout: nil)
  map_Exceptions do
    데이터 = read_from_socket(분량, timeout: 타임아웃)
    하지 않는 한 (데이터.분량 > 0 || 분량 == 0)
      올리다 IOError, "> 0 바이트를 읽을 것으로 예상되지만 0 바이트를 읽습니다. "
    end
    동안 데이터.분량 < 분량
      청크 = read_from_socket(분량 - 데이터.분량, timeout: 타임아웃)
      하지 않는 한 (청크.분량 > 0 || 분량 == 0)
        올리다 IOError, "> 0 바이트를 읽을 것으로 예상되지만 0 바이트를 읽습니다. "
      end
      데이터 << 청크
    end
    데이터
  end
end

#readbyte객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

소켓에서 단일 바이트를 읽습니다.

예시:

싱글 바이트를 읽습니다.

socket.readbyte

반환합니다:

  • (객체)

    읽기 바이트입니다.

이후:

  • 2.0.0



227
228
229
230
231
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 227

def readbyte
  map_Exceptions do
    @socket.readbyte
  end
end

#요약string

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

디버깅을 위해 사람이 읽을 수 있는 소켓 요약을 반환합니다.

반환합니다:

  • (string)

    디버깅을 위한 소켓에 대한 사람이 읽을 수 있는 요약입니다.

이후:

  • 2.0.0



112
113
114
115
116
117
118
119
120
121
122
123
124
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 112

def 요약
  fileno = @socket&.fileno 구출 '<no socket> ' || '<no socket> '
  만약 모니터?
    지표 = 만약 옵션[:push]
      'pm'
    other
      'm'
    end
    "#{연결주소 };#{표시기};fd=#{파일 번호}"
  other
    "#{연결주소 };c:#{연결생성};fd=#{파일 번호}"
  end
end

#write(*args) ⇒ 정수

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

소켓 인스턴스 에 데이터를 씁니다.

매개변수:

  • args (Array<Object>)

    기록할 데이터입니다.

반환합니다:

  • (정수)

    소켓에 기록된 바이트의 길이입니다.

다음을 발생시킵니다.

이후:

  • 2.0.0



242
243
244
245
246
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket.rb', 줄 242

def 쓰기(*args)
  map_Exceptions do
    do_write(*args)
  end
end