func pushNotificationAndroid(req gaurun.RequestGaurunNotification) bool { data := map[string]interface{}{"message": req.Message} msg := gcm.NewMessage(data, req.Tokens...) msg.CollapseKey = req.CollapseKey msg.DelayWhileIdle = req.DelayWhileIdle msg.TimeToLive = req.TimeToLive resp, err := GCMClient.SendNoRetry(msg) if err != nil { return false } if resp.Failure > 0 { return true } return true }
func pushNotificationAndroid(req RequestGaurunNotification) error { LogError.Debug("START push notification for Android") data := map[string]interface{}{"message": req.Message} if len(req.Extend) > 0 { for _, extend := range req.Extend { data[extend.Key] = extend.Value } } token := req.Tokens[0] msg := gcm.NewMessage(data, token) msg.CollapseKey = req.CollapseKey msg.DelayWhileIdle = req.DelayWhileIdle msg.TimeToLive = req.TimeToLive stime := time.Now() resp, err := GCMClient.SendNoRetry(msg) etime := time.Now() ptime := etime.Sub(stime).Seconds() if err != nil { atomic.AddInt64(&StatGaurun.Android.PushError, 1) LogPush(req.ID, StatusFailedPush, token, ptime, req, err) return err } if resp.Failure > 0 { atomic.AddInt64(&StatGaurun.Android.PushSuccess, int64(resp.Success)) atomic.AddInt64(&StatGaurun.Android.PushError, int64(resp.Failure)) LogPush(req.ID, StatusFailedPush, token, ptime, req, errors.New(resp.Results[0].Error)) return errors.New(resp.Results[0].Error) } LogPush(req.ID, StatusSucceededPush, token, ptime, req, nil) atomic.AddInt64(&StatGaurun.Android.PushSuccess, int64(len(req.Tokens))) LogError.Debug("END push notification for Android") return nil }