클래스: Mongo::Server::ConnectionBase
- 상속:
-
ConnectionCommon
- 객체
- ConnectionCommon
- Mongo::Server::ConnectionBase
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 모니터링::게시 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb
개요
이 모듈의 메서드는 공개 API의 일부이지만 이러한 메서드가 이 모듈에서 정의되고 이 모듈을 포함하는 클래스에서 정의되지 않는다는 사실은 공개 API의 일부가 아닙니다.
이 클래스는 일반적인 연결 기능을 캡슐화합니다.
직접 알려진 하위 클래스
상수 요약 접기
- DEFAULT_MAX_BSON_OBJECT_SIZE =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버의 hello 응답에 maxBsonObjectSize 필드가 포함되지 않은 경우 사용자 제공 문서가 직렬화될 때 차지할 수 있는 최대 허용 크기(바이트)입니다.
서버로 전송되는 명령은 이 크기를 MAX_BSON_COMMAND_OVERHEAD만큼 초과할 수 있습니다.
16777216
- MAX_BSON_COMMAND_OVERHEAD =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
명령 데이터에 허용되는 추가 오버헤드(예: 전체 명령을 BSON으로 직렬화할 때 사용자가 제공한 문서가 아니라 드라이버가 명령 문서에 추가한 필드).
16384
- REDUCED_MAX_BSON_SIZE =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
2097152
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
#description ⇒ Server::Description
읽기 전용
비공개
이 연결에서 수행된 핸드셰이크에 대한 hello 응답에서 파생된 이 연결에 대한 서버 설명을 반환합니다.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 전달된 옵션입니다.
-
#서버 ⇒ Mongo::Address
읽기 전용
주소 연결할 주소입니다.
모니터링::게시 가능에 포함된 속성
ConnectionCommon에서 상속된 속성
인스턴스 메서드 요약 접기
- #app_metadata ⇒ 객체
-
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
연결에 단일 메시지를 발송합니다.
-
#세대 ⇒ 정수 | nil
이 연결이 생성된 연결 풀 생성입니다.
-
#service_id ⇒ nil | 객체
서비스 ID(있는 경우)입니다.
Monitoring::Publishable에 포함된 메서드
#publish_cmap_event, #publish_event, #publish_s담_event
Loggable에 포함된 메서드
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
ConnectionCommon에서 상속된 메서드
#connected?, #handShake_command, #handShake_document
인스턴스 속성 세부 정보
#description ⇒ Server::Description (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
아직 연결되지 않은 연결 객체(인증이 필요한 경우 핸드셰이크 및 인증됨)에는 설명이 없습니다. 핸드셰이킹 및 드라이버 인증은 전역 기본값을 사용해야 하지만, 특히 특정 연결의 속성이 동일한 주소로 이루어진 다른 연결의 속성과 동일하다고 가정하지 않아야 합니다(상대방의 서버가 종료되어 다른 서버 버전이 실행되었을 수 있습니다).
이 연결에서 수행된 핸드셰이크에 대한 hello 응답에서 파생된 이 연결에 대한 서버 설명을 반환합니다.
82 83 84 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 82 def description @description end |
#options ⇒ 해시 (읽기 전용)
옵션을 반환합니다.
53 54 55 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 53 def @options end |
#서버 ⇒ Mongo::Address (읽기 전용)
주소 연결할 주소를 반환합니다.
58 59 60 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 58 def 서버 @server end |
인스턴스 메서드 세부 정보
#app_metadata ⇒ 객체
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 107 def @app_metadata ||= 시작 동일 = true AppMetadata::AUTH_OPTION_KEYS.각 do |키| 만약 @server.[키] != [키] 동일 = 거짓 휴식 end end 만약 동일 @server. other AppMetadata.신규(.merge(목적: @server..목적)) end end end |
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
'send'는 모든 객체에 대한 핵심 Ruby 메서드이므로 이 메서드의 이름은 디스패치(dispatch)입니다.
이전 버전과의 호환성을 위해 이 메서드는 메시지를 배열로 허용합니다. 그러나 호출당 정확히 하나의 메시지가 제공되어야 합니다.
연결에 단일 메시지를 발송합니다. 메시지에 응답이 필요한 경우 회신이 반환됩니다.
150 151 152 153 154 155 156 157 158 159 160 161 162 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 150 def 디스패치(, 컨텍스트, = {}) # 모니터링 코드가 여러 메시지를 올바르게 처리하지 못하거나, # 드라이버는 내부적으로 다음 위치에서 둘 이상의 메시지를 보내지 않습니다. # time ever. 따라서 지금은 여러 메시지 사용을 금지합니다. 만약 .분량 != 1 올리다 ArgumentError, '한 번에 하나의 메시지만 발송할 수 있습니다.' end 만약 description.알 수 없음? 올리다 오류::Internal DriverError, "설명을 알 수 없는 연결에서는 메시지를 전달할 수 없습니다: #{description.검사}" end = .first 전달(, 컨텍스트, ) end |
#세대 ⇒ 정수 | nil
이 연결이 생성된 연결 풀 생성입니다. nil일 수 있습니다.
100 101 102 103 104 105 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 100 def 생성 # 로드 밸런서에 대한 연결인 경우 @generation이 설정됩니다. # 핸드셰이크가 완료된 후. 다른 서버에 대한 연결인 경우 # 유형, 연결 생성 중에 생성이 지정됩니다. @generation || [:generation] end |
#service_id ⇒ nil | 객체
서비스 ID(있는 경우)를 반환합니다.
92 93 94 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 92 def service_id description&.service_id end |