apns_kit 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/apns_kit.rb +28 -3
- data/lib/apns_kit/client.rb +1 -1
- data/lib/apns_kit/connection.rb +10 -10
- data/lib/apns_kit/request.rb +3 -3
- data/lib/apns_kit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eca2c85bbb5fd1f118954f2f84268617eb448a8
|
4
|
+
data.tar.gz: 4f3b323f129aa24d9e08b6728855b28d6cfd785f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aeb77a312ffae634dd3d9999cade4c3965aa8319ff72cd4e4d0a63aa696128f0735d7da8064da602375deeb0a25a3b6dbc7f8fee182436d3d21cdf99c83c326a
|
7
|
+
data.tar.gz: 8158857321754b9683a473ab2c591a41b475b928b4ed5c75796416cbc162b5caa4b4ad734ccbd897f7ba7bb890348e3da8e917a3bdc6631b101be959692f08a0
|
data/lib/apns_kit.rb
CHANGED
@@ -10,6 +10,8 @@ require "logger"
|
|
10
10
|
module ApnsKit
|
11
11
|
class << self
|
12
12
|
|
13
|
+
PREFIX = "ApnsKit".freeze
|
14
|
+
|
13
15
|
def logger
|
14
16
|
return @logger if defined?(@logger)
|
15
17
|
@logger = rails_logger || default_logger
|
@@ -19,12 +21,29 @@ module ApnsKit
|
|
19
21
|
@logger = logger
|
20
22
|
end
|
21
23
|
|
24
|
+
def log_debug(message)
|
25
|
+
logger.debug(format_message(message)) if logger.debug?
|
26
|
+
end
|
27
|
+
|
28
|
+
def log_error(message)
|
29
|
+
logger.error(format_message(message)) if logger.error?
|
30
|
+
end
|
31
|
+
|
32
|
+
def log_fatal(message)
|
33
|
+
logger.fatal(format_message(message)) if logger.fatal?
|
34
|
+
end
|
35
|
+
|
36
|
+
def log_info(message)
|
37
|
+
logger.info(format_message(message)) if logger.info?
|
38
|
+
end
|
39
|
+
|
40
|
+
def log_warn(message)
|
41
|
+
logger.warn(format_message(message)) if logger.warn?
|
42
|
+
end
|
43
|
+
|
22
44
|
def default_logger
|
23
45
|
logger = Logger.new($stdout)
|
24
46
|
logger.level = Logger::INFO
|
25
|
-
logger.formatter = proc do |severity, datetime, progname, msg|
|
26
|
-
"[#{datetime} ##{$$}] #{severity} -- : APNs Kit | #{msg}\n"
|
27
|
-
end
|
28
47
|
logger
|
29
48
|
end
|
30
49
|
|
@@ -32,5 +51,11 @@ module ApnsKit
|
|
32
51
|
defined?(::Rails) && ::Rails.respond_to?(:logger) && ::Rails.logger
|
33
52
|
end
|
34
53
|
|
54
|
+
private
|
55
|
+
|
56
|
+
def format_message(message)
|
57
|
+
format("%s | %s".freeze, PREFIX, message)
|
58
|
+
end
|
59
|
+
|
35
60
|
end
|
36
61
|
end
|
data/lib/apns_kit/client.rb
CHANGED
@@ -32,7 +32,7 @@ module ApnsKit
|
|
32
32
|
@connection_pool = @pool_size.times.map { ApnsKit::Connection.new(uri, certificate) }.freeze
|
33
33
|
@default_topic = certificate.app_bundle_id
|
34
34
|
if heartbeat_interval > 0
|
35
|
-
ApnsKit.
|
35
|
+
ApnsKit.log_info("Setting up heartbeat checker")
|
36
36
|
@heartbeat_checker = Concurrent::TimerTask.new { @connection_pool.each(&:ping) }
|
37
37
|
@heartbeat_checker.execution_interval = heartbeat_interval
|
38
38
|
@heartbeat_checker.execute
|
data/lib/apns_kit/connection.rb
CHANGED
@@ -32,7 +32,7 @@ module ApnsKit
|
|
32
32
|
|
33
33
|
def ping
|
34
34
|
if @http
|
35
|
-
ApnsKit.
|
35
|
+
ApnsKit.log_debug("Sending ping")
|
36
36
|
@http.ping("whatever")
|
37
37
|
end
|
38
38
|
end
|
@@ -41,7 +41,7 @@ module ApnsKit
|
|
41
41
|
|
42
42
|
def setup_connection!
|
43
43
|
@mutex.synchronize do
|
44
|
-
ApnsKit.
|
44
|
+
ApnsKit.log_info("Setting up connection")
|
45
45
|
ctx = @certificate.ssl_context
|
46
46
|
tcp = TCPSocket.new(@uri.host, @uri.port)
|
47
47
|
|
@@ -55,13 +55,13 @@ module ApnsKit
|
|
55
55
|
|
56
56
|
@http = HTTP2::Client.new
|
57
57
|
@http.on(:frame) do |bytes|
|
58
|
-
ApnsKit.
|
58
|
+
ApnsKit.log_debug("Sending bytes: #{bytes.unpack("H*").first}")
|
59
59
|
@socket.print bytes
|
60
60
|
@socket.flush
|
61
61
|
end
|
62
62
|
|
63
63
|
ping
|
64
|
-
ApnsKit.
|
64
|
+
ApnsKit.log_info("Connection established")
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -72,17 +72,17 @@ module ApnsKit
|
|
72
72
|
begin
|
73
73
|
if @socket.closed?
|
74
74
|
close_connection!
|
75
|
-
ApnsKit.
|
75
|
+
ApnsKit.log_warn("Socket was closed")
|
76
76
|
break
|
77
77
|
elsif !@socket.eof?
|
78
78
|
data = @socket.readpartial(1024)
|
79
|
-
ApnsKit.
|
79
|
+
ApnsKit.log_debug("Received bytes: #{data.unpack("H*").first}")
|
80
80
|
@http << data
|
81
81
|
end
|
82
82
|
rescue => e
|
83
83
|
close_connection!
|
84
|
-
ApnsKit.
|
85
|
-
e.backtrace.each { |l| ApnsKit.
|
84
|
+
ApnsKit.log_warn("#{e.class} exception: #{e.message} - closing socket")
|
85
|
+
e.backtrace.each { |l| ApnsKit.log_debug(l) }
|
86
86
|
raise e
|
87
87
|
end
|
88
88
|
end
|
@@ -98,11 +98,11 @@ module ApnsKit
|
|
98
98
|
|
99
99
|
def close_connection!
|
100
100
|
@mutex.synchronize do
|
101
|
-
ApnsKit.
|
101
|
+
ApnsKit.log_info("Closing connection")
|
102
102
|
@socket.close if @socket
|
103
103
|
@connected = false
|
104
104
|
@http = nil
|
105
|
-
ApnsKit.
|
105
|
+
ApnsKit.log_info("Connection closed")
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
data/lib/apns_kit/request.rb
CHANGED
@@ -26,7 +26,7 @@ module ApnsKit
|
|
26
26
|
def perform_nonblocking_send(connection)
|
27
27
|
connection.open
|
28
28
|
|
29
|
-
ApnsKit.
|
29
|
+
ApnsKit.log_info("Sending #{@notifications.size} notifications")
|
30
30
|
@notifications.each do |notification|
|
31
31
|
stream = connection.http.new_stream
|
32
32
|
|
@@ -36,7 +36,7 @@ module ApnsKit
|
|
36
36
|
stream.on(:headers) do |headers|
|
37
37
|
headers = Hash[*headers.flatten]
|
38
38
|
response.headers = headers
|
39
|
-
ApnsKit.
|
39
|
+
ApnsKit.log_debug("Received headers #{headers}")
|
40
40
|
if response.success?
|
41
41
|
yield response if block_given?
|
42
42
|
end
|
@@ -45,7 +45,7 @@ module ApnsKit
|
|
45
45
|
stream.on(:data) do |data|
|
46
46
|
response.raw_body ||= ""
|
47
47
|
response.raw_body << data
|
48
|
-
ApnsKit.
|
48
|
+
ApnsKit.log_debug("Received data #{data}")
|
49
49
|
yield response if block_given?
|
50
50
|
end
|
51
51
|
|
data/lib/apns_kit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apns_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Recalis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http-2
|