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