class DRb::DRbSSLSocket
用于 SSL 套接字的 DRb
协议
通过 SSL 的 DRb
套接字的 URI 为:drbssl://<主机>:<端口>?<选项>
。选项是可选的
公共类方法
new(uri, soc, config, is_established) 点击以切换源代码
创建一个 DRb::DRbSSLSocket
实例。
uri
是我们连接到的 URI。soc
是我们绑定的 tcp 套接字。config
是我们的配置。可以是 Hash 或 SSLConfig
。is_established
是一个布尔值,表示 soc
当前是否已建立连接
这是基于 DRb
协议自动调用的。
调用父类方法
# File drb-2.2.1/lib/drb/ssl.rb, line 314 def initialize(uri, soc, config, is_established) @ssl = is_established ? soc : nil super(uri, soc.to_io, config) end
open(uri, config) 点击以切换源代码
返回一个 DRb::DRbSSLSocket
实例,作为客户端连接,并已建立 SSL 连接。这是从 DRb::start_service
或连接到远程对象时调用的
DRb.start_service 'drbssl://127.0.0.1:0', front, config
uri
是我们连接到的 URI,如上面的 'drbssl://127.0.0.1:0'
,config
是我们的配置。可以是 Hash 或 DRb::DRbSSLSocket::SSLConfig
# File drb-2.2.1/lib/drb/ssl.rb, line 259 def self.open(uri, config) host, port, = parse_uri(uri) soc = TCPSocket.open(host, port) ssl_conf = SSLConfig::new(config) ssl_conf.setup_ssl_context ssl = ssl_conf.connect(soc) self.new(uri, ssl, ssl_conf, true) end
open_server(uri, config) 点击以切换源代码
返回一个 DRb::DRbSSLSocket
实例,作为服务器端连接,并已建立 SSL 连接。这是从 DRb::start_service
或连接到远程对象时调用的
DRb.start_service 'drbssl://127.0.0.1:0', front, config
uri
是我们连接到的 URI,如上面的 'drbssl://127.0.0.1:0'
,config
是我们的配置。可以是 Hash 或 DRb::DRbSSLSocket::SSLConfig
# File drb-2.2.1/lib/drb/ssl.rb, line 277 def self.open_server(uri, config) uri = 'drbssl://:0' unless uri host, port, = parse_uri(uri) if host.size == 0 host = getservername soc = open_server_inaddr_any(host, port) else soc = TCPServer.open(host, port) end port = soc.addr[1] if port == 0 @uri = "drbssl://#{host}:#{port}" ssl_conf = SSLConfig.new(config) ssl_conf.setup_certificate ssl_conf.setup_ssl_context self.new(@uri, soc, ssl_conf, false) end