Class: RubyPushNotifications::GCM::GCMConnection
- Inherits:
-
Object
- Object
- RubyPushNotifications::GCM::GCMConnection
- Defined in:
- lib/ruby-push-notifications/gcm/gcm_connection.rb
Overview
Encapsulates a connection to the GCM service Responsible for final connection with the service.
Constant Summary collapse
- GCM_URL =
'https://android.googleapis.com/gcm/send'
- CONTENT_TYPE_HEADER =
'Content-Type'
- JSON_CONTENT_TYPE =
'application/json'
- AUTHORIZATION_HEADER =
'Authorization'
Class Method Summary collapse
-
.post(notification, key, options = {}) ⇒ GCMResponse
Issues a POST request to the GCM send endpoint to submit the given notifications.
Class Method Details
.post(notification, key, options = {}) ⇒ GCMResponse
Issues a POST request to the GCM send endpoint to submit the given notifications.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby-push-notifications/gcm/gcm_connection.rb', line 35 def self.post(notification, key, = {}) headers = { CONTENT_TYPE_HEADER => JSON_CONTENT_TYPE, AUTHORIZATION_HEADER => "key=#{key}" } url = URI.parse .fetch(:url, GCM_URL) http = Net::HTTP.new url.host, url.port http.use_ssl = url.scheme == 'https' http.verify_mode = OpenSSL::SSL::VERIFY_NONE http.open_timeout = .fetch(:open_timeout, 30) http.read_timeout = .fetch(:read_timeout, 30) response = http.post url.path, notification, headers GCMResponse.new response.code.to_i, response.body end |