Example #1
0
        /// <summary>
        /// 阿里云推送
        /// </summary>
        /// <param name="request"></param>
        /// <param name="message"></param>
        /// <param name="receivers"></param>
        private void Push(NotifyMessageRequest request, Tgnet.FootChat.Push.MessageModel message, long[] receivers, bool remind, NotifyTypes notifyType)
        {
            ExceptionHelper.ThrowIfNull(message, "message");
            receivers = (receivers ?? Enumerable.Empty <long>()).Where(id => id > 0).Distinct().ToArray();
            PushService.PushSetting setting = null;
            if (request.MessageType != MessageType.Online)
            {
                setting = new PushService.PushSetting
                {
                    ExpireTime   = TimeSpan.FromDays(1),
                    StoreOffline = true,
                    NotifyType   = (PushService.PushSettingNotifyTypes)notifyType.To <byte>(),
                };
            }
            List <PushService.TargetsAppKinds> apps = new List <PushService.TargetsAppKinds>()
            {
                PushService.TargetsAppKinds.FootChatAndroid, PushService.TargetsAppKinds.FootChatiOS
            };

            _PushManager.PushJsonMessage(new PushService.PushJsonMessageRequest
            {
                Content     = message.Content,
                ContentType = message.ContentType,
                Extensions  = message.Extensions,
                MessageId   = message.MessageId,
                Sender      = message.Sender,
                SenderName  = message.SenderName,
                SessionId   = message.SessionId,
                SessionType = message.SessionType,
                Timestamp   = message.Timestamp,
                Remind      = WrapperRemind(message, remind)
            }, new PushService.Targets
            {
                Uids    = receivers,
                Apps    = apps.ToArray(),
                Testing = false,
            }, setting);
        }