Ejemplo n.º 1
0
        public override Task <SendMessageReply> SendMessage(SendMessageRequest request, ServerCallContext context)
        {
            SendMessageReply reply = new SendMessageReply();
            var reslute            = SavePushMessage(request, request.MessageList.ToArray());

            try
            {
                string IOS     = Template.GetActionString(request.Category, GetObject(request.ActionList.ToList()), "IOS");
                string Android = Template.GetActionString(request.Category, GetObject(request.ActionList.ToList()), "Android");
                string type    = Template.GetTemplateType(request.Category);
                if (Template.IsSendPush)
                {
                    //推送实体
                    PushEntity entity = new PushEntity()
                    {
                        Title          = Template.GetPushMessage(request.Category),
                        Alert          = Template.GetTemplateString(request.Category, request.MessageList.ToArray()),
                        Badge          = 1,
                        ByAlias        = request.ToUser.ToString(),
                        ByRegistration = null,
                        Android        = Android,
                        IOS            = IOS,
                    };
                    JPushMessage push = new JPushMessage();
                    push.PushMessage(entity);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.ToString());
                reply.Flag = false;
            }
            reply.Flag = true;
            return(Task.FromResult(reply));
        }
Ejemplo n.º 2
0
 public SendMessageAt2Reply SendMessageAt2ReplyFromHead(SendMessageReply ho)
 {
     if (ho.OnSuccess)
     {
         return(SendMessageAt2Reply.CreateSuccess());
     }
     if (ho.OnTooLong)
     {
         return(SendMessageAt2Reply.CreateLinesTooLong());
     }
     throw new InvalidOperationException();
 }
Ejemplo n.º 3
0
        public SendMessageReply SendMessage(SendMessageRequest r)
        {
            if (r.Content.Length > 256)
            {
                return(SendMessageReply.CreateTooLong());
            }
            if (r.Content == "login")
            {
                SessionContext.RaiseAuthenticated();
                return(SendMessageReply.CreateSuccess());
            }
            else if (r.Content == "secure")
            {
                //生成测试用确定Key
                var ServerToken = Enumerable.Range(0, 41).Select(i => (Byte)(i)).ToArray();
                var ClientToken = Enumerable.Range(0, 41).Select(i => (Byte)(40 - i)).ToArray();
                SessionContext.RaiseSecureConnectionRequired(new SecureContext {
                    ServerToken = ServerToken, ClientToken = ClientToken
                });
                return(SendMessageReply.CreateSuccess());
            }
            SessionContext.SendMessageCount += 1;
            var Sessions = ServerContext.Sessions.ToList();

            foreach (var rc in Sessions)
            {
                rc.SessionLock.EnterWriteLock();
                try
                {
                    rc.ReceivedMessageCount += 1;
                    if (rc.EventPump != null)
                    {
                        rc.EventPump.MessageReceived(new MessageReceivedEvent {
                            Content = r.Content
                        });
                    }
                }
                finally
                {
                    rc.SessionLock.ExitWriteLock();
                }
            }
            return(SendMessageReply.CreateSuccess());
        }