클래스: Mongo::Server::ConnectionCommon

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
lib/ Mongo/ 서버/connection_common.rb

개요

참고:

이 모듈의 메서드는 공개 API의 일부이지만 이러한 메서드가 이 모듈에서 정의되고 이 모듈을 포함하는 클래스에서 정의되지 않는다는 사실은 공개 API의 일부가 아닙니다.

모니터링 연결과 비모니터링 연결 모두에서 사용하는 일반적인 방법입니다.

이후:

  • 2.0.0

직접 알려진 하위 클래스

ConnectionBase, Monitor::Connection

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

인스턴스 속성 세부 정보

#압축기string | nil (읽기 전용)

압축기가 이 연결을 위해 핸드셰이크 중에 협상했습니다(있는 경우).

이 속성은 아직 핸드셰이크를 완료하지 않은 연결과 압축을 협상하지 않은 연결의 경우 nil입니다.

반환합니다:

  • (string | nil)

    압축기.

이후:

  • 2.0.0



37
38
39
# 파일 'lib/ Mongo/ 서버/connection_common.rb', 줄 37

def 압축기
  @compressor
end

#PID정수 (읽기 전용)

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

연결이 생성되었을 때의 PID 프로세스 ID 를 반환합니다.

반환합니다:

  • (정수)

    PID 연결이 생성되었을 때의 프로세스 ID 입니다.

이후:

  • 2.0.0



53
54
55
# 파일 'lib/ Mongo/ 서버/connection_common.rb', 줄 53

def PID
  @pid
end

인스턴스 메서드 세부 정보

#연결되었나요?true, false

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

연결이 현재 연결되어 있는지 확인합니다.

예시:

연결이 되어 있나요?

connection.connected?

반환합니다:

  • (true, false)

    연결된 경우.

이후:

  • 2.0.0



47
48
49
# 파일 'lib/ Mongo/ 서버/connection_common.rb', 줄 47

def 연결됨?
  !!소켓
end

#handshake_command(handshake_document) ⇒ Protocol::Message

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

연결 핸드셰이크에 사용해야 하는 명령을 빌드합니다.

매개변수:

  • 핸드셰이크_문서 (BSON::Document)

    핸드셰이크 목적으로 서버로 전송되어야 하는 문서입니다.

반환합니다:

  • (Protocol::Message)

    핸드셰이크 목적으로 서버로 전송되어야 하는 명령입니다.

이후:

  • 2.0.0



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# 파일 'lib/ Mongo/ 서버/connection_common.rb', 줄 94

def 핸드셰이크 명령(핸드셰이크_문서)
  만약 핸드셰이크_문서['apiVersion'] || 핸드셰이크_문서['loadBalanced']
    protocol::메시지.신규(
      [], {}, 핸드셰이크_문서.merge({'$db' => Database::ADMIN})
    )
  other
    protocol::쿼리.신규(
      Database::ADMIN,
      Database::명령,
      핸드셰이크_문서,
      :limit => -1
    )
  end
end

#핸드셰이크 _문서 (app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) ⇒ BSON::Document

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

연결 핸드셰이크에 사용해야 하는 문서를 작성합니다.

매개변수:

  • app_metadata (Server::AppMetadata)

    애플리케이션 메타데이터

  • speculative_auth_doc (BSON::Document) (기본값: nil)

    추측 인증 문서(있는 경우)입니다.

  • load_balancer (true | false) (기본값은 false)

    로드 밸런서에 대한 연결 여부입니다.

  • server_api (해시 | nil) (기본값: nil)

    server_api 서버 API 버전입니다.

반환합니다:

  • (BSON::Document)

    핸드셰이크 목적으로 서버로 전송되어야 하는 문서입니다.

이후:

  • 2.0.0



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 파일 'lib/ Mongo/ 서버/connection_common.rb', 줄 68

def 핸드셰이크_문서(, speculative_auth_doc: nil, load_balancer: 거짓, server_api: nil)
  serv_api = .server_api || server_api
  문서 = 만약 serv_api
               HELLO_DOC.merge(Utils.transformation_server_api(serv_api))
             other
               LEGACY_HELLO_DOC
             end
  문서.merge(.validated_document). do |doc|
    만약 speculative_auth_doc
      doc.update(speculativeAuthenticate: speculative_auth_doc)
    end
    만약 load_balancer
      doc.update(loadBalanced: true)
    end
  end
end