class Apns::Persistent::Connection

Public Class Methods

new(uri, certificate, passphrase) click to toggle source
# File lib/apns/persistent/connection.rb, line 12
def initialize(uri, certificate, passphrase)
  @uri = URI(uri)
  @certificate = certificate
  @passphrase = passphrase
end

Public Instance Methods

close() click to toggle source
# File lib/apns/persistent/connection.rb, line 28
def close
  @ssl.close
  @socket.close
  @ssl = nil
  @socket = nil
end
closed?() click to toggle source
# File lib/apns/persistent/connection.rb, line 44
def closed?
  !opened?
end
open() click to toggle source
# File lib/apns/persistent/connection.rb, line 18
def open
  @socket = TCPSocket.new(@uri.host, @uri.port)
  context = OpenSSL::SSL::SSLContext.new
  context.key = OpenSSL::PKey::RSA.new(@certificate, @passphrase)
  context.cert = OpenSSL::X509::Certificate.new(@certificate)
  @ssl = OpenSSL::SSL::SSLSocket.new(@socket, context)
  @ssl.sync
  @ssl.connect
end
opened?() click to toggle source
# File lib/apns/persistent/connection.rb, line 40
def opened?
  !(@ssl.nil? || @socket.nil?)
end
readable?() click to toggle source
# File lib/apns/persistent/connection.rb, line 48
def readable?
  r, w = IO.select([@ssl], [], [@ssl], 1)
  (r && r[0])
end
reopen() click to toggle source
# File lib/apns/persistent/connection.rb, line 35
def reopen
  close
  open
end