Exemple #1
0
        private void SendInfo(ISession session, CmdInfo info, ReceiveMsgInfo data)
        {
            CmdInfo cloneInfo = info.Clone(data);

            if (session == null)
            {
                int to = data.To;
                if (to < 1)
                {
                    logger.LogWarning($"参数错误--To:[{to}]");
                    return;
                }
                logger.LogWarning($"没有找到session--进入待发送队列--to is [{to}]");
                msgMgr.Add(to, cloneInfo);
                return;
            }
            Console.WriteLine("找到用户");
            //session.Stream.ToPipeStream().WriteLine(JsonSerializer.Serialize(cloneInfo, options: jsonOpt));
            //session.Stream.Flush();
            SendByteMsg(session, JsonSerializer.Serialize(cloneInfo, jsonOpt));
        }
Exemple #2
0
        private void Init()
        {
            client             = SocketFactory.CreateClient <AsyncTcpClient>(host, 8800);
            client.DataReceive = (o, args) =>
            {
                string line = args.Stream.ToPipeStream().ReadLine();
                line = ChatModel.Util.StringUtil.GetGBString(line);

                Console.WriteLine(line);
                CmdInfo info = JsonSerializer.Deserialize <CmdInfo>(line);
                switch (info.Type)
                {
                case CmdType.Error:
                    Console.WriteLine(info.GetDataRowText());
                    break;

                case CmdType.Login:
                    user = info.As <User>();
                    Console.WriteLine($"欢迎[{user.Name}]登录系统");
                    break;

                case CmdType.SendMsg:
                    ReceiveMsgInfo receiveMsgInfo = info.As <ReceiveMsgInfo>();
                    if (receiveMsgInfo != null)
                    {
                        Console.WriteLine($"[{receiveMsgInfo.From.Name}]:[{receiveMsgInfo.Msg}]");
                    }
                    break;
                }
            };
            client.Connected += (c) =>
            {
                Console.WriteLine("已经连接到服务器");
            };
            client.Connect();
        }