类:Mongo::Server::ConnectionCommon

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/server/connection_common.rb

Overview

注意:

尽管该模块的方法是公共 API 的一部分,但这些方法是在此模块上定义的,而不是在包含该模块的类上定义的,因此,公共 API 不属于该模块的一部分。

监控和非监控连接使用的常用方法。

由于:

  • 2.0.0

直接已知子类

ConnectionBaseMonitor::Connection

实例属性摘要折叠

实例方法摘要折叠

实例属性详细信息

#压缩器string | nil (只读)

压缩程序在握手期间为此连接进行了协商(如果有)。

对于尚未完成握手的连接以及协商不压缩的连接,此属性为零。

返回:

  • ( string | nil )

    压缩器。

由于:

  • 2.0.0



37
38
39
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/connection_common.rb', 第37行

def 压缩器
  @compressor
end

# PID整数(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回PID连接创建时的进程ID 。

返回:

  • ( Integer )

    PID创建连接时的进程ID 。

由于:

  • 2.0.0



53
54
55
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/connection_common.rb', 第53行

def 进程 ID (PID)
  @pid
end

实例方法详细信息

#已连接?true , false

已弃用。

确定连接当前是否已连接。

例子:

连接是否已连接?

connection.connected?

返回:

  • ( true , false )

    如果已连接。

由于:

  • 2.0.0



47
48
49
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/connection_common.rb', 第47行

def 已连接?
  !!套接字
end

#handshake_command(handshake_document) ⇒ Protocol::Message

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

构建用于连接握手的命令。

参数:

  • 握手文档 ( BSON::Document )

    应发送到服务器以进行握手的文档。

返回:

由于:

  • 2.0.0



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/connection_common.rb', 第94行

def handshake_command(握手文档)
  if 握手文档['apiVersion'] || 握手文档[' loadBalanced ']
    protocol::消息.new(
      [], {}, 握手文档.合并(merge)({' $db ' => Database::ADMIN})
    )
  else
    protocol::查询.new(
      Database::ADMIN,
      Database::命令,
      握手文档,
      :limit => -1
    )
  end
end

#handshake_document (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
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/connection_common.rb', 第68行

def 握手文档(, speculative_auth_doc: nil, load_balancer: false, server_api: nil)
  serv_api = .server_api || server_api
  文档 = if serv_api
               HELLO_DOC.合并(merge)(Utils.transform_server_api(serv_api))
             else
               LEGACY_HELLO_DOC
             end
  文档.合并(merge)(.valid_document).点击 do |doc|
    if speculative_auth_doc
      doc.update(speculativeAuthenticate: speculative_auth_doc)
    end
    if load_balancer
      doc.update(loadBalanced: true)
    end
  end
end