类:Mongo::Socket Private
- 继承:
-
对象
- 对象
- Mongo::Socket
- 包括:
- Socket::Constants
- 定义于:
- 构建/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
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
提供有关套接字的附加数据以供驱动程序使用。
在命名空间下定义
模块: OcspCache 类: OcspVerifier , SSL , TCP , Unix
常量摘要折叠
- SSL_ERROR =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
已弃用。TLS 相关异常的错误消息。
“ MongoDB 可能未配置 TLS 支持”.冻结
- TIMEOUT_ERROR =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
已弃用。有关套接字调用超时的错误消息。
'套接字请求超时'.冻结
- TIMEOUT_PACK =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
用于超时的包指令。
' l_ 2 '.冻结
- WRITE_CHUNK_SIZE =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
以该大小的数据段将数据写入套接字。
65536
实例属性摘要折叠
-
# family ⇒ 整数
只读
private
家庭托管家庭的类型。
-
# options ⇒ 哈希
只读
private
选项。
-
#socket ⇒ Socket
只读
private
套接字 包装的套接字。
-
# timeout ="Float"
只读
private
超时 套接字超时。
实例方法摘要折叠
-
#还活着? ⇒ true, false
已弃用
private
已弃用。
使用#connectable? 在连接上。
-
# close ⇒ true
private
关闭套接字。
- #可连接? ⇒ true 已弃用 private 已弃用。
-
# connection_address ⇒ 地址
private
创建此套接字的连接地址。
-
# connection_Generation ="Integer"(整数)
private
创建此套接字的连接(针对非监控连接)的生成。
-
# eof? ⇒ 布尔
private
测试此套接字是否已到达 EOF。
-
#gets (*args) ⇒ 对象
private
委托访问底层套接字。
-
#initialize (timeout, options) ⇒ 套接字
构造函数
private
初始化通用套接字属性。
-
#监控? ⇒ true | false
private
此套接字是否由监控连接创建。
-
#read(length, timeout: nil) ⇒ Object
private
将从套接字读取指定字节数的所有数据。
-
# readbyte ⇒ 对象
private
从套接字读取单个字节。
-
#摘要⇒ string
private
用于调试的套接字摘要,用于人类可读。
-
# 写入 (*args) ⇒ 整数
private
将数据写入套接字实例。
构造函数详情
#initialize (timeout, options) ⇒套接字
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
初始化通用套接字属性。
69 70 71 72 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第69行 def 初始化(超时, ) @timeout = 超时 @options = end |
实例属性详细信息
# family ⇒整数(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 family 主机族的类型。
75 76 77 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第75行 def 家庭情况 @family end |
# options ⇒哈希(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 选项。
81 82 83 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第81行 def @options end |
# socket ⇒套接字(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 socket 包装的套接字。
78 79 80 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第78行 def 套接字 @socket end |
# timeout ⇒浮点(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 timeout 套接字超时时间。
84 85 86 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第84行 def 超时 @timeout end |
实例方法详细信息
#还活着? ⇒ true , false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用#connectable? 在连接上。
套接字连接是否处于活动状态?
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第134行 def alive? sock_arr = [ @socket ] if Kernel::SELECT(sock_arr, nil, sock_arr, 0) # eof?调用应该立即返回,因为 select # 表示套接字可读。 但是,如果 @socket 是 TLS # socket, eof?无论如何都可以阻塞 - 请参阅 RUBY- 2140 。 开始 超时.超时(0.1) do eof? end 救援 ::超时::错误 true end else true end end |
# close ⇒ true
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
关闭套接字。
160 161 162 163 164 165 166 167 168 169 170 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第160行 def 关闭 开始 # 有时,关闭调用可能会挂起很长时间 ::超时.超时(5) do @socket.关闭 end 救援 # 静默所有错误 end true end |
#可连接? ⇒ true
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
仅出于向后兼容目的,请勿使用。
262 263 264 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第262行 def 可连接? true end |
# connection_address ⇒地址
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接的地址。
89 90 91 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第89行 def connection_address [:connection_address] end |
# connection_Generation =" Integer "(整数)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回创建此套接字的连接(对于非监控连接)的生成。
97 98 99 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第97行 def connection_Generation [:connection_Generation] end |
# eof? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
测试此套接字是否已到达 EOF。 主要用于活性检查。
251 252 253 254 255 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第251行 def eof? @socket.eof? 救援 IOError, SystemCallError true end |
#gets (*args) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
委托访问底层套接字。
182 183 184 185 186 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第182行 def 获取(*args) map_Exceptions do @socket.获取(*args) end end |
#监控? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回此套接字是否由监控连接创建。
105 106 107 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第105行 def 监控? !![:monitor] end |
# read (length, timeout: nil) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将从套接字读取指定字节数的所有数据。 如果没有返回数据,则会引发异常。
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第202行 def 读(长度, timeout: nil) map_Exceptions do 数据 = read_from_socket(长度, timeout: 超时) 除非 (数据.长度 > 0 || 长度 == 0) 提高 IOError, “预计读取 > 0个字节,但实际读取了0个字节” end while 数据.长度 < 长度 数据段 = read_from_socket(长度 - 数据.长度, timeout: 超时) 除非 (数据段.长度 > 0 || 长度 == 0) 提高 IOError, “预计读取 > 0个字节,但实际读取了0个字节” end 数据 << 数据段 end 数据 end end |
# readbyte ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从套接字读取单个字节。
227 228 229 230 231 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第227行 def readbyte map_Exceptions do @socket.readbyte end end |
#摘要⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回用于调试的套接字的人类可读摘要。
112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第112行 def 总结 fileno = @socket&。fileno 救援 ' <no socket> ' || ' <no socket> ' if 监控? 指示器 = if [:push] ' pm ' else ' m ' end " #{ connection_address } ; #{ subject } ;fd= #{ fileno } " else " #{ connection_address } ;c: #{ connection_Generation } ;fd= #{ fileno } " end end |
# write (*args) ⇒整数
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将数据写入套接字实例。
242 243 244 245 246 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket.rb', 第242行 def 写(*args) map_Exceptions do do_write(*args) end end |