Ruby 2.4

DRb::DRbSSLSocket

class DRb::DRbSSLSocket

Parent:DRb::DRbTCPSocket

通过SSL套接字的DRb协议

基于SSL的DRb套接字的URI是:drbssl://<host>:<port>?<option>。该选项是可选的

公共类方法

new(uri,soc,config,is_established)显示源代码

创建一个DRb :: DRbSSLSocket实例。

uri是我们连接的URI。soc是我们绑定的tcp套接字。config是我们的配置。哈希或SSLConfig is_established是否soc是当前建立的布尔值

这是基于DRb协议自动调用的。

调用超类方法BasicObject.new

# File lib/drb/ssl.rb, line 305 def initialize(uri, soc, config, is_established) @ssl = is_established ? soc : nil super(uri, soc.to_io, config) end

打开(uri,config)显示源文件

返回一个DRb :: DRbSSLSocket实例作为客户端连接,连接SSL。这是从DRb.start_service或连接到远程对象时调用的:

DRb.start_service 'drbssl://localhost:0', front, config

uri是我们连接到的URI,'drbssl://localhost:0'上面config是我们的配置。无论是哈希还是DRb :: DRbSSLSocket :: SSLConfig

# File lib/drb/ssl.rb, line 248 def self.open(uri, config) host, port, = parse_uri(uri) host.untaint port.untaint 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://localhost:0', front, config

uri是我们连接到的URI,'drbssl://localhost:0'上面config是我们的配置。无论是哈希还是DRb :: DRbSSLSocket :: SSLConfig

# File lib/drb/ssl.rb, line 268 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