类:Mongo::Server::ConnectionBase
- 继承:
-
ConnectionCommon
- 对象
- ConnectionCommon
- Mongo::Server::ConnectionBase
- 扩展方式:
- 可转发
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb
Overview
尽管该模块的方法是公共 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
只读
private
返回此连接的服务器描述,该描述派生自对此连接执行的握手的 hello 响应。
-
# options ⇒ 哈希
只读
选项 传入的选项。
-
# server ⇒ Mongo::Address
只读
地址 要连接到的地址。
包含在Monitoring::Publishable 中的属性
从ConnectionCommon继承的属性
实例方法摘要折叠
- # app_metadata ⇒ 对象
-
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
向该连接分派单条消息。
-
#生成⇒ 整数 | nil
创建此连接的连接池代。
-
# service_id ="nil |对象
服务 ID(如果有)。
Monitoring::Publishable 中包含的方法
#publish_cmap_event 、 #publish_event 、 #publish_sdam_event
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
从ConnectionCommon继承的方法
#connected? , #handshake_command , #handshake_document
实例属性详细信息
# description ⇒ Server::Description (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
尚未连接(握手和身份验证,如果需要身份验证)的连接对象没有描述。 在握手和身份验证时,驱动程序必须使用全局默认值,特别是不要假设特定连接的属性与针对同一地址的其他连接的属性相同(因为另一端的服务器可能已关闭,并且可能会启动不同的服务器版本)。
返回此连接的服务器描述,该描述派生自对此连接执行的握手的 hello 响应。
82 83 84 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第82行 def 描述 @description end |
# options ⇒哈希(只读)
返回 options 传入的选项。
53 54 55 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第53行 def @options end |
# server ⇒ Mongo::Address (readonly)
返回要连接到的地址。
58 59 60 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第58行 def server @server end |
实例方法详细信息
# app_metadata ⇒对象
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第107行 def @app_metadata ||= 开始 相同 = true AppMetadata::AUTH_OPTION_KEYS.每 do |key| if @server.[key] != [key] 相同 = false 中断 end end if 相同 @server. else AppMetadata.new(.合并(merge)(目的: @server..用途)) end end end |
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
此方法称为调度,因为“send”是所有对象上的核心 Ruby 方法。
为了向后兼容,此方法接受数组形式的消息。 但是,每次调用必须给出一条消息。
向该连接分派单条消息。 如果该消息需要响应,则会返回回复。
150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第150行 def 调度(, 上下文, = {}) # 监控代码未正确处理多条消息, # 并且驱动程序内部不会在以下位置发送多条消息 # 一次。 因此暂时禁止使用多消息。 if .长度 != 1 提高 ArgumentError, '一次只能发送一条消息' end if 描述.未知? 提高 错误::内部驱动程序错误, " 无法在描述未知的连接上分派消息: # { description .inspect } " end = .first 交付(, 上下文, ) end |
#生成⇒整数 | nil
创建此连接的连接池代。 可能为零。
100 101 102 103 104 105 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第100行 def 生成 # 如果连接的是负载均衡器,则设置 @Generation # 握手完成后。 如果连接到另一台服务器 # 类型,生成在连接创建期间指定。 @Generation || [:Generation] end |
# service_id =" nil |对象
返回 服务 ID(如果有)。
92 93 94 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/server/connection_base.rb', 第92行 def service_id 描述&。service_id end |