Beispiel #1
0
        public override void ExecuteCommand(ChatSession session, StringRequestInfo requestInfo)
        {
            //ToId  Message
            if (requestInfo.Parameters != null && requestInfo.Parameters.Length == 2)
            {
                string toId    = requestInfo.Parameters[0];
                string message = requestInfo.Parameters[1];

                ChatSession toSession = session.AppServer.GetAllSessions().FirstOrDefault(s => toId.Equals(s.Id));
                //用户在线
                string modelId = Guid.NewGuid().ToString();
                if (toSession != null)
                {
                    toSession.Send($"{session.Id}给你发消息:{message} {modelId}");
                    //只能保证把数据发出去了,但是不保证目标一定收到
                    //需要客户端回发确认!
                    ChatDataManager.Add(toId, new ChatModel()
                    {
                        FromId     = session.Id,
                        ToId       = toSession.Id,
                        Message    = message,
                        Id         = modelId,
                        State      = 1,//待确认
                        CreateTime = DateTime.Now
                    });
                }
                else
                {
                    ChatDataManager.Add(toId, new ChatModel()
                    {
                        FromId     = session.Id,
                        ToId       = toId,
                        Message    = message,
                        Id         = modelId,
                        State      = 0,//未发送
                        CreateTime = DateTime.Now
                    });
                    Console.WriteLine($"{toId}不在线,消息暂时没能送达!");
                }
            }
            else
            {
                session.Send("Wrong Parameter");
            }
        }
Beispiel #2
0
        public override void ExecuteCommand(ChatSession session, StringRequestInfo requestInfo)
        {
            // 还是传递两个参数  1、 要发给谁 ToId    2、消息内容
            if (requestInfo.Parameters != null && requestInfo.Parameters.Length == 2)
            {
                string      toId      = requestInfo.Parameters[0];
                string      message   = requestInfo.Parameters[1];
                ChatSession toSession = session.AppServer.GetAllSessions().FirstOrDefault(a => toId.Equals(a.Id));

                string modelId = Guid.NewGuid().ToString();
                if (toSession != null) // 说过之前有用户用这个Id 登录过
                {
                    toSession.Send($"{session.Id} 给你发消息:{message} ");
                    ChatDataManager.Add(toId, new ChatModel()
                    {
                        FromId     = session.Id,
                        ToId       = toId,
                        Message    = message,
                        Id         = modelId,
                        State      = 1,// 待确认
                        CreateTime = DateTime.Now
                    });
                }
                else
                {
                    ChatDataManager.Add(toId, new ChatModel()
                    {
                        FromId     = session.Id,
                        ToId       = toId,
                        Message    = message,
                        Id         = modelId,
                        State      = 0,// 未发送
                        CreateTime = DateTime.Now
                    });
                    session.Send("消息未发送成功");
                }
            }
            else
            {
                session.Send("参数错误");
            }
        }