From 1655b92d9a4b1137fbcd72b3af3069e51e4e58fa Mon Sep 17 00:00:00 2001 From: mattuy Date: Sat, 15 Dec 2018 00:29:41 +0800 Subject: [PATCH 01/23] initial commit for client with c# --- Interact/Client.cs | 90 ++++++++++++ Interact/Handle.cs | 45 ++++++ Interact/Interact.csproj | 68 +++++++++ Interact/JsonObject.cs | 17 +++ Interact/Message.cs | 57 ++++++++ Interact/Properties/AssemblyInfo.cs | 36 +++++ Interact/Properties/Resources.Designer.cs | 81 +++++++++++ Interact/Properties/Resources.resx | 126 ++++++++++++++++ Interact/Read.cs | 52 +++++++ Interact/Send.cs | 65 +++++++++ Interact/Strings.cs | 15 ++ Interact/User.cs | 28 ++++ StormChat.sln | 51 +++++++ StormChat/App.config | 6 + StormChat/LogForm.Designer.cs | 160 +++++++++++++++++++++ StormChat/LogForm.cs | 60 ++++++++ StormChat/LogForm.resx | 120 ++++++++++++++++ StormChat/MainForm.Designer.cs | 111 ++++++++++++++ StormChat/MainForm.cs | 26 ++++ StormChat/MainForm.resx | 120 ++++++++++++++++ StormChat/Program.cs | 23 +++ StormChat/Properties/AssemblyInfo.cs | 36 +++++ StormChat/Properties/Resources.Designer.cs | 83 +++++++++++ StormChat/Properties/Resources.resx | 127 ++++++++++++++++ StormChat/Properties/Settings.Designer.cs | 26 ++++ StormChat/Properties/Settings.settings | 7 + StormChat/Properties/app.manifest | 70 +++++++++ StormChat/StormChat.csproj | 130 +++++++++++++++++ StormChat/pic/DefaultPhoto.jpg | Bin 0 -> 4608 bytes StormChat/pic/LogFormBackground.jpg | Bin 0 -> 72364 bytes 30 files changed, 1836 insertions(+) create mode 100644 Interact/Client.cs create mode 100644 Interact/Handle.cs create mode 100644 Interact/Interact.csproj create mode 100644 Interact/JsonObject.cs create mode 100644 Interact/Message.cs create mode 100644 Interact/Properties/AssemblyInfo.cs create mode 100644 Interact/Properties/Resources.Designer.cs create mode 100644 Interact/Properties/Resources.resx create mode 100644 Interact/Read.cs create mode 100644 Interact/Send.cs create mode 100644 Interact/Strings.cs create mode 100644 Interact/User.cs create mode 100644 StormChat.sln create mode 100644 StormChat/App.config create mode 100644 StormChat/LogForm.Designer.cs create mode 100644 StormChat/LogForm.cs create mode 100644 StormChat/LogForm.resx create mode 100644 StormChat/MainForm.Designer.cs create mode 100644 StormChat/MainForm.cs create mode 100644 StormChat/MainForm.resx create mode 100644 StormChat/Program.cs create mode 100644 StormChat/Properties/AssemblyInfo.cs create mode 100644 StormChat/Properties/Resources.Designer.cs create mode 100644 StormChat/Properties/Resources.resx create mode 100644 StormChat/Properties/Settings.Designer.cs create mode 100644 StormChat/Properties/Settings.settings create mode 100644 StormChat/Properties/app.manifest create mode 100644 StormChat/StormChat.csproj create mode 100644 StormChat/pic/DefaultPhoto.jpg create mode 100644 StormChat/pic/LogFormBackground.jpg diff --git a/Interact/Client.cs b/Interact/Client.cs new file mode 100644 index 0000000..5b324cf --- /dev/null +++ b/Interact/Client.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Net.Sockets; +using System.Net; +using System.Threading; +using System.Collections.Concurrent; +using Newtonsoft.Json.Linq; + +namespace Interact +{ + //连接中断 + public delegate void DisconnectHandler(Exception ex); + //登录反馈到达 + public delegate void LoginDoneHandler(JObject head, User user); + + public static partial class StormClient + { + //连接中断事件 + public static event DisconnectHandler OnDisconnect; + //登录结果处理事件 + public static event LoginDoneHandler OnLoginDone; + + //TCP客户端 + private static TcpClient tcpClient; + //消息发送队列 + private static BlockingCollection sendQueue; + //数据读取线程 + private static Thread readLoopThread; + //数据发送线程 + private static Thread sendLoopThread; + + static StormClient() + { + tcpClient = new TcpClient(); + sendQueue = new BlockingCollection(); + } + /// + /// 初始化客户端,连接服务器。如果成功则启动数据接收和发送线程 + /// + /// 如果已连接到服务器返回true,否则返回false。 + public static bool Initialize() + { + if (StormClient.tcpClient.Connected) + return true; + StormClient.tcpClient.Connect(Interact.Properties.Resources.RemoteServerAddr, int.Parse(Interact.Properties.Resources.RemoteServerPort)); + if (!StormClient.tcpClient.Connected) + return false; + if (sendLoopThread != null) + sendLoopThread.Abort(); + if (readLoopThread != null) + readLoopThread.Abort(); + //启动数据收发线程 + sendLoopThread = new Thread(new ThreadStart(SendLoop)); + readLoopThread = new Thread(new ThreadStart(ReadLoop)); + //设置为后台线程 + sendLoopThread.IsBackground = readLoopThread.IsBackground = true; + sendLoopThread.Start(); + readLoopThread.Start(); + return true; + } + + /// + /// 登录。此操作为异步操作,完成后产生OnLoginDone事件。 + /// + /// 成功将请求加入发送队列返回true,否则返回false。 + /// 用户名 + /// 密码 + /// 数据发送完成回调函数。注意,结果处理回调请设置OnLoginDone事件 + public static bool RequestLogin(string user, string password, Action callback = null) + { + JsonLogInfoHead logInfo = new JsonLogInfoHead() + { + Token = "", + Operation = Operations.Login.ToString(), + User = user, + Pwd = password + }; + Packet packet = new Packet + { + Head = logInfo, + Data = null, + CallBack = callback + }; + return Send(packet); + } + + } +} diff --git a/Interact/Handle.cs b/Interact/Handle.cs new file mode 100644 index 0000000..1bb74c6 --- /dev/null +++ b/Interact/Handle.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +namespace Interact +{ + //对数据的处理相关内容 + public partial class StormClient + { + //根据包头信息处理数据 + private static void HandleAll(byte[] headData, byte[] data) + { + string head = Encoding.UTF8.GetString(headData); + JObject jsonObj = (JObject)JsonConvert.DeserializeObject(head); + switch ((Operations)Enum.Parse(typeof(Operations), jsonObj[Strings.Operation].ToString())) + { + case Operations.Login: + HandleLoginResult(jsonObj, data); + break; + case Operations.Panic: + case Operations.TransMessage: + case Operations.SendMessage: + case Operations.Ping: + case Operations.Logout: + case Operations.Offline: + case Operations.GetUserList: + case Operations.UpdateUserInfo: + case Operations.GetUserPhoto: + default: + break; + } + } + //处理登录反馈消息 + private static void HandleLoginResult(JObject head, byte[] data) + { + User user = null; + if (head[Strings.Error].ToString() == "") + user = JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data)) as User; + OnLoginDone?.Invoke(head, user); + } + } + +} diff --git a/Interact/Interact.csproj b/Interact/Interact.csproj new file mode 100644 index 0000000..7582ed8 --- /dev/null +++ b/Interact/Interact.csproj @@ -0,0 +1,68 @@ + + + + + Debug + AnyCPU + {CEF054AF-95B7-4B88-934E-02705FEEA554} + Library + Properties + Interact + Interact + v4.0 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + .\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + \ No newline at end of file diff --git a/Interact/JsonObject.cs b/Interact/JsonObject.cs new file mode 100644 index 0000000..8498d7e --- /dev/null +++ b/Interact/JsonObject.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +//此文件定义Json序列化与反序列化时使用的数据结构,仅内部使用 + +namespace Interact +{ + //登录信息包头 + internal class JsonLogInfoHead : BaseHead + { + public string User; + public string Pwd; + } + +} diff --git a/Interact/Message.cs b/Interact/Message.cs new file mode 100644 index 0000000..664320f --- /dev/null +++ b/Interact/Message.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Interact +{ + //定义一则用户消息 + public class Message + { + public static UInt32 MaxHeadLength; //最大包头长度 + public static UInt32 MaxMessageLength; //最大消息长度 + + public DateTime When { get; } //服务器接收时间 + public User From; //发送者 + public string Content; //消息内容 + } + + //包头基本结构 + public class BaseHead + { + //请求ID,由发送方定义的随机字符串。如果接受方有返回数据应包含相同的Token + public string Token; + //操作类型,决定数据的其他内容 + public string Operation; + } + // 接受方返回的执行结果反馈包头,包含错误文本 + public class ResultHead : BaseHead + { + //错误文本,为空则执行成功 + public string Error; + } + + //从服务器接收的原始数据封包 + internal class Packet + { + public BaseHead Head; //包头 + public byte[] Data; //包内容 + public Action CallBack; //数据发送完成的回调函数。注意,此时仅保证数据已发送, + //服务器可能并没有处理完成请求 + } + //允许请求的操作列表。具体定义见设计文档 + public enum Operations + { + Panic, + TransMessage, + SendMessage, + Ping, + Login, + Logout, + Offline, + GetUserList, + UpdateUserInfo, + GetUserPhoto + } +} diff --git a/Interact/Properties/AssemblyInfo.cs b/Interact/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..49a4d20 --- /dev/null +++ b/Interact/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Interact")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Interact")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cef054af-95b7-4b88-934e-02705feea554")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Interact/Properties/Resources.Designer.cs b/Interact/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b1a5aa2 --- /dev/null +++ b/Interact/Properties/Resources.Designer.cs @@ -0,0 +1,81 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Interact.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Interact.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to localhost. + /// + internal static string RemoteServerAddr { + get { + return ResourceManager.GetString("RemoteServerAddr", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 3727. + /// + internal static string RemoteServerPort { + get { + return ResourceManager.GetString("RemoteServerPort", resourceCulture); + } + } + } +} diff --git a/Interact/Properties/Resources.resx b/Interact/Properties/Resources.resx new file mode 100644 index 0000000..3029213 --- /dev/null +++ b/Interact/Properties/Resources.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + localhost + + + 3727 + + \ No newline at end of file diff --git a/Interact/Read.cs b/Interact/Read.cs new file mode 100644 index 0000000..019416e --- /dev/null +++ b/Interact/Read.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Net; +using System.Net.Sockets; + +namespace Interact +{ + //读取数据相关内容 + public partial class StormClient + { + // 数据读取线程,从tcp连接读取数据 + private static void ReadLoop() + { + NetworkStream stream = StormClient.tcpClient.GetStream(); + try + { + while (tcpClient.Connected) + { + byte[] head = ReadDataWithLength(stream); + byte[] data = ReadDataWithLength(stream); + HandleAll(head, data); + } + } + catch (System.IO.IOException ex) + { + tcpClient.Close(); + OnDisconnect(ex); + } + catch (ObjectDisposedException ex) + { + tcpClient.Close(); + OnDisconnect(ex); + } + } + // 从网络流读取数据 + private static byte[] ReadDataWithLength(NetworkStream stream) + { + byte[] lenBuffer = new byte[4]; //数据长度 + //获取数据长度 + stream.Read(lenBuffer, 0, 4); + int length = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(lenBuffer, 0)); + if (length <= 0) + return null; + //读取数据 + byte[] data = new byte[length]; + stream.Read(data, 0, length); + return data; + } + } +} diff --git a/Interact/Send.cs b/Interact/Send.cs new file mode 100644 index 0000000..7515499 --- /dev/null +++ b/Interact/Send.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Newtonsoft.Json; +using System.Net; +using System.Net.Sockets; + +namespace Interact +{ + //发送数据相关内容 + public partial class StormClient + { + // 消息写入线程,向tcp连接写入数据 + private static void SendLoop() + { + NetworkStream stream = tcpClient.GetStream(); + try + { + foreach (Packet packet in sendQueue.GetConsumingEnumerable()) + { + //结束循环 + if (!tcpClient.Connected) + break; + //向tcp连接写数据 + byte[] lenBuffer; //数据长度缓存 + byte[] headData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(packet.Head)); + //写包头 + lenBuffer = BitConverter.GetBytes((UInt32)IPAddress.HostToNetworkOrder(headData.Length)); + stream.Write(lenBuffer, 0, 4); + stream.Write(headData, 0, headData.Length); + //写数据 + int length = 0; + if (packet.Data != null) + length = packet.Data.Length; + lenBuffer = BitConverter.GetBytes((UInt32)IPAddress.HostToNetworkOrder(length)); + stream.Write(lenBuffer, 0, 4); + if (length > 0) + stream.Write(packet.Data, 0, packet.Data.Length); + //发送完成回调 + packet.CallBack?.Invoke(packet.Head); + } + } + catch (System.IO.IOException ex) + { + tcpClient.Close(); + OnDisconnect?.Invoke(ex); + } + catch (ObjectDisposedException ex) + { + tcpClient.Close(); + OnDisconnect?.Invoke(ex); + } + } + //发送数据 + private static bool Send(Packet packet) + { + if (sendLoopThread == null || !sendLoopThread.IsAlive) + return false; + //加入数据发送队列等待 + sendQueue.Add(packet); + return true; + } + } +} diff --git a/Interact/Strings.cs b/Interact/Strings.cs new file mode 100644 index 0000000..508a169 --- /dev/null +++ b/Interact/Strings.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Interact +{ + //字符串常量 + public static class Strings + { + public const string Token = "Token"; + public const string Operation = "Operation"; + public const string Error = "Error"; + } +} diff --git a/Interact/User.cs b/Interact/User.cs new file mode 100644 index 0000000..f8ad5db --- /dev/null +++ b/Interact/User.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Interact +{ + //用户 + public class User + { + public static User Me; //当前用户 + + public string Name; //用户名 + public string NickName; //昵称 + public string Motto; //个性签名 + public UserGroup Group; //用户组 + } + + //用户类型 + public enum UserGroup + { + User, //普通用户 + Vip, //会员 + Admin, //管理员 + Group //群组 + } +} diff --git a/StormChat.sln b/StormChat.sln new file mode 100644 index 0000000..699c9eb --- /dev/null +++ b/StormChat.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28010.2041 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StormChat", "StormChat\StormChat.csproj", "{01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Interact", "Interact\Interact.csproj", "{CEF054AF-95B7-4B88-934E-02705FEEA554}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|x64.ActiveCfg = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|x64.Build.0 = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|x86.ActiveCfg = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Debug|x86.Build.0 = Debug|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|Any CPU.Build.0 = Release|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|x64.ActiveCfg = Release|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|x64.Build.0 = Release|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|x86.ActiveCfg = Release|Any CPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD}.Release|x86.Build.0 = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|x64.ActiveCfg = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|x64.Build.0 = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|x86.ActiveCfg = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Debug|x86.Build.0 = Debug|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|Any CPU.Build.0 = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x64.ActiveCfg = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x64.Build.0 = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x86.ActiveCfg = Release|Any CPU + {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {16287CCA-1001-41B2-B0BA-101618B1DCFB} + EndGlobalSection +EndGlobal diff --git a/StormChat/App.config b/StormChat/App.config new file mode 100644 index 0000000..74ade9d --- /dev/null +++ b/StormChat/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/StormChat/LogForm.Designer.cs b/StormChat/LogForm.Designer.cs new file mode 100644 index 0000000..14587c3 --- /dev/null +++ b/StormChat/LogForm.Designer.cs @@ -0,0 +1,160 @@ +namespace StormChat +{ + partial class LogForm + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.txtUser = new System.Windows.Forms.TextBox(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.btnLogin = new System.Windows.Forms.Button(); + this.chkRemerberPassword = new System.Windows.Forms.CheckBox(); + this.chkAutoLogin = new System.Windows.Forms.CheckBox(); + this.picPhoto = new System.Windows.Forms.PictureBox(); + this.lblBadge = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.picPhoto)).BeginInit(); + this.SuspendLayout(); + // + // txtUser + // + this.txtUser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtUser.Font = new System.Drawing.Font("DengXian", 12.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtUser.Location = new System.Drawing.Point(207, 260); + this.txtUser.Margin = new System.Windows.Forms.Padding(4); + this.txtUser.Name = "txtUser"; + this.txtUser.Size = new System.Drawing.Size(351, 30); + this.txtUser.TabIndex = 1; + this.txtUser.Text = "mattuy"; + // + // txtPassword + // + this.txtPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtPassword.Font = new System.Drawing.Font("DengXian", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtPassword.Location = new System.Drawing.Point(207, 295); + this.txtPassword.Margin = new System.Windows.Forms.Padding(133, 4, 4, 4); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.PasswordChar = '*'; + this.txtPassword.Size = new System.Drawing.Size(351, 32); + this.txtPassword.TabIndex = 3; + this.txtPassword.Text = "1233211234567"; + // + // btnLogin + // + this.btnLogin.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.btnLogin.Font = new System.Drawing.Font("Microsoft YaHei", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnLogin.Location = new System.Drawing.Point(207, 362); + this.btnLogin.Margin = new System.Windows.Forms.Padding(4); + this.btnLogin.Name = "btnLogin"; + this.btnLogin.Size = new System.Drawing.Size(352, 48); + this.btnLogin.TabIndex = 6; + this.btnLogin.Text = "登录"; + this.btnLogin.UseVisualStyleBackColor = true; + this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click); + // + // chkRemerberPassword + // + this.chkRemerberPassword.AutoSize = true; + this.chkRemerberPassword.Font = new System.Drawing.Font("SimSun", 10F); + this.chkRemerberPassword.Location = new System.Drawing.Point(208, 335); + this.chkRemerberPassword.Margin = new System.Windows.Forms.Padding(4); + this.chkRemerberPassword.Name = "chkRemerberPassword"; + this.chkRemerberPassword.Size = new System.Drawing.Size(98, 21); + this.chkRemerberPassword.TabIndex = 4; + this.chkRemerberPassword.Text = "记住密码"; + this.chkRemerberPassword.UseVisualStyleBackColor = true; + // + // chkAutoLogin + // + this.chkAutoLogin.AutoSize = true; + this.chkAutoLogin.Font = new System.Drawing.Font("SimSun", 10F); + this.chkAutoLogin.Location = new System.Drawing.Point(449, 335); + this.chkAutoLogin.Margin = new System.Windows.Forms.Padding(4); + this.chkAutoLogin.Name = "chkAutoLogin"; + this.chkAutoLogin.Size = new System.Drawing.Size(98, 21); + this.chkAutoLogin.TabIndex = 5; + this.chkAutoLogin.Text = "自动登录"; + this.chkAutoLogin.UseVisualStyleBackColor = true; + // + // picPhoto + // + this.picPhoto.Image = global::StormChat.Properties.Resources.DefaultPhoto; + this.picPhoto.Location = new System.Drawing.Point(21, 260); + this.picPhoto.Margin = new System.Windows.Forms.Padding(4); + this.picPhoto.Name = "picPhoto"; + this.picPhoto.Size = new System.Drawing.Size(160, 150); + this.picPhoto.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picPhoto.TabIndex = 4; + this.picPhoto.TabStop = false; + // + // lblBadge + // + this.lblBadge.BackColor = System.Drawing.Color.Transparent; + this.lblBadge.Dock = System.Windows.Forms.DockStyle.Top; + this.lblBadge.Font = new System.Drawing.Font("Microsoft Sans Serif", 50.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.lblBadge.ForeColor = System.Drawing.Color.Maroon; + this.lblBadge.Image = global::StormChat.Properties.Resources.LogFormBackground; + this.lblBadge.Location = new System.Drawing.Point(0, 0); + this.lblBadge.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblBadge.Name = "lblBadge"; + this.lblBadge.Size = new System.Drawing.Size(579, 229); + this.lblBadge.TabIndex = 2; + this.lblBadge.Text = "StormChat"; + this.lblBadge.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // LogForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(579, 428); + this.Controls.Add(this.chkAutoLogin); + this.Controls.Add(this.chkRemerberPassword); + this.Controls.Add(this.btnLogin); + this.Controls.Add(this.picPhoto); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.lblBadge); + this.Controls.Add(this.txtUser); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Margin = new System.Windows.Forms.Padding(4); + this.Name = "LogForm"; + this.Text = "登录"; + this.Load += new System.EventHandler(this.LogForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.picPhoto)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TextBox txtUser; + private System.Windows.Forms.Label lblBadge; + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.PictureBox picPhoto; + private System.Windows.Forms.Button btnLogin; + private System.Windows.Forms.CheckBox chkRemerberPassword; + private System.Windows.Forms.CheckBox chkAutoLogin; + } +} + diff --git a/StormChat/LogForm.cs b/StormChat/LogForm.cs new file mode 100644 index 0000000..c00319b --- /dev/null +++ b/StormChat/LogForm.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Newtonsoft.Json.Linq; +using Interact; + +namespace StormChat +{ + public partial class LogForm : Form + { + internal static MainForm _mainForm; //主窗口,程序启动时设置 + public LogForm() + { + InitializeComponent(); + } + + private void LogForm_Load(object sender, EventArgs e) + { + StormClient.OnLoginDone += this.LoginDone; + } + private void btnLogin_Click(object sender, EventArgs e) + { + if(!StormClient.Initialize()) + { + MessageBox.Show(this, "连接服务器失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + btnLogin.Enabled = false; + StormClient.RequestLogin(txtUser.Text, txtPassword.Text); + } + + //登录结果处理 + private void LoginDone(JObject head, User user) + { + Action f = delegate () + { + btnLogin.Enabled = true; + if (head[Strings.Error].ToString() != "") + { + MessageBox.Show("登录失败:" + head[Strings.Error].ToString()); + return; + } + _mainForm.Opacity = 1; + _mainForm.Show(); + this.Close(); + }; + //处理跨线程调用 + if (this.InvokeRequired) + this.Invoke(f); + else + f.Invoke(); + } + } +} diff --git a/StormChat/LogForm.resx b/StormChat/LogForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/StormChat/LogForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/StormChat/MainForm.Designer.cs b/StormChat/MainForm.Designer.cs new file mode 100644 index 0000000..0f5ec29 --- /dev/null +++ b/StormChat/MainForm.Designer.cs @@ -0,0 +1,111 @@ +namespace StormChat +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.picPhoto = new System.Windows.Forms.PictureBox(); + this.lblName = new System.Windows.Forms.Label(); + this.txtMotto = new System.Windows.Forms.TextBox(); + this.listBox1 = new System.Windows.Forms.ListBox(); + ((System.ComponentModel.ISupportInitialize)(this.picPhoto)).BeginInit(); + this.SuspendLayout(); + // + // picPhoto + // + this.picPhoto.Image = global::StormChat.Properties.Resources.DefaultPhoto; + this.picPhoto.Location = new System.Drawing.Point(16, 20); + this.picPhoto.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.picPhoto.Name = "picPhoto"; + this.picPhoto.Size = new System.Drawing.Size(160, 150); + this.picPhoto.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picPhoto.TabIndex = 5; + this.picPhoto.TabStop = false; + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Font = new System.Drawing.Font("Microsoft YaHei", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblName.Location = new System.Drawing.Point(215, 20); + this.lblName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(170, 52); + this.lblName.TabIndex = 6; + this.lblName.Text = "Mattuy"; + // + // txtMotto + // + this.txtMotto.BackColor = System.Drawing.SystemColors.Control; + this.txtMotto.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.txtMotto.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtMotto.Location = new System.Drawing.Point(215, 91); + this.txtMotto.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.txtMotto.Name = "txtMotto"; + this.txtMotto.Size = new System.Drawing.Size(241, 23); + this.txtMotto.TabIndex = 7; + this.txtMotto.Text = "I am a programer."; + // + // listBox1 + // + this.listBox1.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.listBox1.FormattingEnabled = true; + this.listBox1.ItemHeight = 20; + this.listBox1.Location = new System.Drawing.Point(16, 195); + this.listBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(439, 564); + this.listBox1.TabIndex = 8; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(472, 789); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.txtMotto); + this.Controls.Add(this.lblName); + this.Controls.Add(this.picPhoto); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Opacity = 0D; + this.Text = "MainForm"; + this.Load += new System.EventHandler(this.MainForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.picPhoto)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox picPhoto; + private System.Windows.Forms.Label lblName; + private System.Windows.Forms.TextBox txtMotto; + private System.Windows.Forms.ListBox listBox1; + } +} \ No newline at end of file diff --git a/StormChat/MainForm.cs b/StormChat/MainForm.cs new file mode 100644 index 0000000..1044ec7 --- /dev/null +++ b/StormChat/MainForm.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace StormChat +{ + public partial class MainForm : Form + { + public MainForm() + { + InitializeComponent(); + } + + private void MainForm_Load(object sender, EventArgs e) + { + this.Visible = false; + new LogForm().Show(); + } + } +} diff --git a/StormChat/MainForm.resx b/StormChat/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/StormChat/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/StormChat/Program.cs b/StormChat/Program.cs new file mode 100644 index 0000000..11404d8 --- /dev/null +++ b/StormChat/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace StormChat +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + LogForm._mainForm = new MainForm(); + Application.Run(LogForm._mainForm); + } + } +} diff --git a/StormChat/Properties/AssemblyInfo.cs b/StormChat/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e7cbb4c --- /dev/null +++ b/StormChat/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("StormChat")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Billows West")] +[assembly: AssemblyProduct("StormChat")] +[assembly: AssemblyCopyright("Copyright © Billows West 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +//将 ComVisible 设置为 false 将使此程序集中的类型 +//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("01903ae6-fdb9-4ff4-8be7-fda238ceb5ad")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.1.0.0")] +[assembly: AssemblyFileVersion("0.1.0.0")] diff --git a/StormChat/Properties/Resources.Designer.cs b/StormChat/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d3ffa6e --- /dev/null +++ b/StormChat/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace StormChat.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("StormChat.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap DefaultPhoto { + get { + object obj = ResourceManager.GetObject("DefaultPhoto", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap LogFormBackground { + get { + object obj = ResourceManager.GetObject("LogFormBackground", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/StormChat/Properties/Resources.resx b/StormChat/Properties/Resources.resx new file mode 100644 index 0000000..053d988 --- /dev/null +++ b/StormChat/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\pic\DefaultPhoto.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\pic\logFormBackground.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/StormChat/Properties/Settings.Designer.cs b/StormChat/Properties/Settings.Designer.cs new file mode 100644 index 0000000..4f85e24 --- /dev/null +++ b/StormChat/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace StormChat.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/StormChat/Properties/Settings.settings b/StormChat/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/StormChat/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/StormChat/Properties/app.manifest b/StormChat/Properties/app.manifest new file mode 100644 index 0000000..29d0cc2 --- /dev/null +++ b/StormChat/Properties/app.manifest @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + \ No newline at end of file diff --git a/StormChat/StormChat.csproj b/StormChat/StormChat.csproj new file mode 100644 index 0000000..84e4023 --- /dev/null +++ b/StormChat/StormChat.csproj @@ -0,0 +1,130 @@ + + + + + Debug + AnyCPU + {01903AE6-FDB9-4FF4-8BE7-FDA238CEB5AD} + WinExe + Properties + StormChat + StormChat + v4.0 + 512 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + LocalIntranet + + + true + + + Properties\app.manifest + + + + False + ..\Interact\Newtonsoft.Json.dll + + + + + + + + + + + + + + + Form + + + LogForm.cs + + + Form + + + MainForm.cs + + + + + LogForm.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + {cef054af-95b7-4b88-934e-02705feea554} + Interact + + + + + \ No newline at end of file diff --git a/StormChat/pic/DefaultPhoto.jpg b/StormChat/pic/DefaultPhoto.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a9eab1a94eff5551c51ff6790a2588bb8eec930 GIT binary patch literal 4608 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 SJkf)<%p>#^QAJ&lAOG3gYIXtu literal 0 HcmV?d00001 From 3003a8868a23b85c26ae84713308fbcc61f409ff Mon Sep 17 00:00:00 2001 From: mattuy Date: Sat, 15 Dec 2018 17:54:19 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- Interact/{Strings.cs => AttrNames.cs} | 9 +++-- Interact/Client.cs | 47 ++++++++++++++++++++++++-- Interact/Handle.cs | 37 ++++++++++++++++---- Interact/Interact.csproj | 3 +- Interact/JsonObject.cs | 29 ++++++++++++++-- Interact/Message.cs | 27 +++++---------- Interact/Newtonsoft.Json.dll | Bin 0 -> 553384 bytes StormChat/LogForm.cs | 7 ++-- StormChat/StormChat.csproj | 3 +- 10 files changed, 124 insertions(+), 40 deletions(-) rename Interact/{Strings.cs => AttrNames.cs} (51%) create mode 100644 Interact/Newtonsoft.Json.dll diff --git a/.gitignore b/.gitignore index 75419e8..f475183 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ # Binaries for programs and plugins *.exe *.exe~ -*.dll +#*.dll *.so *.dylib diff --git a/Interact/Strings.cs b/Interact/AttrNames.cs similarity index 51% rename from Interact/Strings.cs rename to Interact/AttrNames.cs index 508a169..a780338 100644 --- a/Interact/Strings.cs +++ b/Interact/AttrNames.cs @@ -5,11 +5,16 @@ using System.Text; namespace Interact { - //字符串常量 - public static class Strings + //Json数据的字段访问字符串 + public static class AttrNames { public const string Token = "Token"; public const string Operation = "Operation"; public const string Error = "Error"; + + public const string User = "User"; + public const string NickName = "NickName"; + public const string Motto = "Motto"; + public const string UGroup = "UGroup"; } } diff --git a/Interact/Client.cs b/Interact/Client.cs index 5b324cf..c995f73 100644 --- a/Interact/Client.cs +++ b/Interact/Client.cs @@ -6,21 +6,59 @@ using System.Net.Sockets; using System.Net; using System.Threading; using System.Collections.Concurrent; -using Newtonsoft.Json.Linq; +using System.Drawing; namespace Interact { //连接中断 public delegate void DisconnectHandler(Exception ex); + //通用请求结果处理 + public delegate void ResultHandler(ResultHead head); + //消息到达事件处理 + public delegate void MessageHandler(Message msg); //登录反馈到达 - public delegate void LoginDoneHandler(JObject head, User user); + public delegate void LoginDoneHandler(ResultHead head, User user); + //获取用户列表结果处理 + public delegate void GetUserListDoneHandler(ResultHead head, User[] users); + //获取用户头像结果处理 + public delegate void GetUserPhotoDoneHandler(ResultHead head, Image image); + + /// + /// 与服务器进行数据通信,并向外部提供一系列通信接口 + /// public static partial class StormClient { //连接中断事件 public static event DisconnectHandler OnDisconnect; + //服务器异常消息处理事件 + public static event ResultHandler OnPanic; + //服务器强制注销登陆事件 + public static event ResultHandler OnOffline; + //消息到达事件 + public static event MessageHandler OnMessage; + //发送消息处理完成反馈事件(仅在DoesSendMessageReturn为true时有效) + public static event ResultHandler OnSendMessageDone; + //更新用户信息结果处理事件 + public static event ResultHandler OnUpdateUserInfoDone; //登录结果处理事件 public static event LoginDoneHandler OnLoginDone; + //获取用户列表结果处理事件 + public static event GetUserListDoneHandler OnGetUserListDone; + //获取用户头像结果处理事件 + public static event GetUserPhotoDoneHandler OnGetUserPhotoDoneHandler; + //发送消息时是否要求服务器返回处理结果 + public static bool DoesSendMessageReturn + { + get + { + return doesSendMessageReturn != 0; + } + set + { + Interlocked.Exchange(ref StormClient.doesSendMessageReturn, value ? 1 : 0); + } + } //TCP客户端 private static TcpClient tcpClient; @@ -30,12 +68,15 @@ namespace Interact private static Thread readLoopThread; //数据发送线程 private static Thread sendLoopThread; + //发送消息时是否要求服务器返回处理结果 + private static volatile int doesSendMessageReturn = 0; static StormClient() { tcpClient = new TcpClient(); sendQueue = new BlockingCollection(); } + /// /// 初始化客户端,连接服务器。如果成功则启动数据接收和发送线程 /// @@ -62,7 +103,7 @@ namespace Interact } /// - /// 登录。此操作为异步操作,完成后产生OnLoginDone事件。 + /// 登录。此操作为异步操作,服务器返回结果后产生OnLoginDone事件。 /// /// 成功将请求加入发送队列返回true,否则返回false。 /// 用户名 diff --git a/Interact/Handle.cs b/Interact/Handle.cs index 1bb74c6..ec30600 100644 --- a/Interact/Handle.cs +++ b/Interact/Handle.cs @@ -14,10 +14,10 @@ namespace Interact { string head = Encoding.UTF8.GetString(headData); JObject jsonObj = (JObject)JsonConvert.DeserializeObject(head); - switch ((Operations)Enum.Parse(typeof(Operations), jsonObj[Strings.Operation].ToString())) + switch ((Operations)Enum.Parse(typeof(Operations), jsonObj[AttrNames.Operation].ToString())) { case Operations.Login: - HandleLoginResult(jsonObj, data); + HandleLoginResult(GetResultHead(jsonObj), data); break; case Operations.Panic: case Operations.TransMessage: @@ -32,14 +32,37 @@ namespace Interact break; } } - //处理登录反馈消息 - private static void HandleLoginResult(JObject head, byte[] data) + + //提取基本结果包头结构 + private static ResultHead GetResultHead(JObject head) { - User user = null; - if (head[Strings.Error].ToString() == "") - user = JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data)) as User; + ResultHead resultHead = new ResultHead + { + Token = head[AttrNames.Token].ToString(), + Operation = head[AttrNames.Operation].ToString(), + Error = head[AttrNames.Error].ToString() + }; + return resultHead; + } + + //处理登录反馈消息 + private static void HandleLoginResult(ResultHead head, byte[] data) + { + //发起登录完成事件 + if (head.Error != "") + OnLoginDone?.Invoke(head, null); + JObject dataObj = (JObject)JsonConvert.SerializeObject(data); + User user = new User + { + Name = dataObj[AttrNames.User].ToString(), + NickName = dataObj[AttrNames.NickName].ToString(), + Motto = dataObj[AttrNames.Motto].ToString(), + Group = (UserGroup)Enum.Parse(typeof(UserGroup), dataObj[AttrNames.UGroup].ToString()) + }; OnLoginDone?.Invoke(head, user); } + + } } diff --git a/Interact/Interact.csproj b/Interact/Interact.csproj index 7582ed8..331e988 100644 --- a/Interact/Interact.csproj +++ b/Interact/Interact.csproj @@ -36,6 +36,7 @@ + @@ -55,7 +56,7 @@ - + diff --git a/Interact/JsonObject.cs b/Interact/JsonObject.cs index 8498d7e..fd2ef53 100644 --- a/Interact/JsonObject.cs +++ b/Interact/JsonObject.cs @@ -3,10 +3,26 @@ using System.Collections.Generic; using System.Linq; using System.Text; -//此文件定义Json序列化与反序列化时使用的数据结构,仅内部使用 - namespace Interact { + #region 定义数据交互用到的数据结构(可能作为事件或回调函数的参数) + //包头基本结构 + public class BaseHead + { + //请求ID,由发送方定义的随机字符串。如果接受方有返回数据应包含相同的Token + public string Token; + //操作类型,决定数据的其他内容 + public string Operation; + } + // 接受方返回的执行结果反馈包头,包含错误文本 + public class ResultHead : BaseHead + { + //错误文本,为空则执行成功 + public string Error; + } + #endregion + + #region 定义Json序列化与反序列化时使用的数据结构,仅内部使用 //登录信息包头 internal class JsonLogInfoHead : BaseHead { @@ -14,4 +30,13 @@ namespace Interact public string Pwd; } + //用户信息 + internal class JsonUserInfo + { + public string User; //用户名 + public string NickName; //昵称 + public string Motto; //个性签名 + public string UGroup; //用户组 + } + #endregion } diff --git a/Interact/Message.cs b/Interact/Message.cs index 664320f..1ea5db5 100644 --- a/Interact/Message.cs +++ b/Interact/Message.cs @@ -6,30 +6,19 @@ using System.Threading.Tasks; namespace Interact { - //定义一则用户消息 + //定义一则用户接收到的消息 public class Message { - public static UInt32 MaxHeadLength; //最大包头长度 - public static UInt32 MaxMessageLength; //最大消息长度 - + /*保留 + public const UInt32 MaxHeadLength = 4096; //最大包头长度 + public const UInt32 MaxMessageLength = 0x6400000; //最大数据长度 + */ public DateTime When { get; } //服务器接收时间 public User From; //发送者 public string Content; //消息内容 - } - - //包头基本结构 - public class BaseHead - { - //请求ID,由发送方定义的随机字符串。如果接受方有返回数据应包含相同的Token - public string Token; - //操作类型,决定数据的其他内容 - public string Operation; - } - // 接受方返回的执行结果反馈包头,包含错误文本 - public class ResultHead : BaseHead - { - //错误文本,为空则执行成功 - public string Error; + + //将消息保存到数据库(保留) + protected bool Save() { return false; } } //从服务器接收的原始数据封包 diff --git a/Interact/Newtonsoft.Json.dll b/Interact/Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..5b3a1ebb19bc314a9f7e9d001ce57288d6b7302f GIT binary patch literal 553384 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%0AK}dk=7;;R)R)FQ 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⪻wc3J=Xzy0GM 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%0AM&tT=C-lZ4q@9b*$?)r^gt15~7jFr+bskB}eg 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⁣%rp^HRjCeR#9|X? z;kEL9*c6Ts)3G=}q(a@O#0)M^y`zCE`@{sis{zs(2y;$&>qy=3^iVoq3(JJ0-2@F* zl7Y6NboM%Q)Yafdeo>DMjl&ZNf=#ntlv38YLX)`-hXB@nB7^@#deMgQp_a%BSG}Vf zYDw99aGhkwEeZ;Cz!FfU@SZw4-coA#6G{OUIuI2?Euk>&3PCF?)B)!Y)WPY4fUA#a z#)UGag$`(e?-WA~1?rxm4(gFfd1?3vSE?(_bxqiYkK(u=+=m+mR~WKKYMX?QAeOlz zcZA_1ii<_Ol7=01Lp45p3}MV-CKX*U2b7i_wPGWMh;|>&@+23LyK7bpih&j&HL1t> z8`KE`2E|}uU9OfF~|*06x5HY$6k zYLNQM4u*gv1)C%VjeOv~Knt*s2^l~;DV4SH9oy9Du&0--)C*oQI>plNr(%tk6dh5F!+pa>Nc?}5~T zM+}?}Q{*Shc|Gz+GoXk<`f$3`)14qiDX9k@R?A8rQCvES)p}{RA72rWp4#}pRRPA5 z$sY0vO2-g;%Ai^vd=J4D+9+8j6?vh{I1Yy zG>Ijk#se;nOfza#|1wD0)~WijNLW4osS@T3i&T|i`=T<#3|wo>1M3s07+WhhdAv}< z*EA@GO9n_mC6>^iN{6o%^2Hs-E&#hrvXUMgFY=Mlx(MLVlXDVD_Sij<>vOY}y%d~? z>KEI^ZH&=NM=QKHi{(uzA2L#$!Rc8yII&fF0|+?o?1^j*t??)IxI!m+$RQpa<6i?_ zhf;s3@R-EO)!@WS(ebW^7Q`N@01S)8Mkn5g3LQ&w$8&$j+j{c)GTsx5hvHAX0~*n) z@kn8s_(03{rcI}UC1n%jh13!XQK?k6h?9UZxH2V4-P z`1Xm8wDiy+aI~56%kwKFqsZC}iS9LB(11Uz9`u0BBNQx*M0fZn$P)3TdCK}etxfaG02rSiG z$b2GM{YlQF#gThK0*Q^vBRl*e1=$EE%#+LzFd7y>}(@EtSb3yG7)tN*H!r zj6i`+gNZ1JYZwT6xsj_T!0yB+Tj8Q#BHH6KDy)=X${g5Yl5tghB3HdwBoEG z2RtPMBa?+gn!+cPg>)`Nshf&Gl9Jcqs*lqLiJc6@=(Cc}#mecJibEV5Q3V!C0k9zC z=e8?B5?51LguGlxyVV-nO`Sz%qU;c?Guc1M$jcR1c&)hWIM($T8*ku{fm*uMaEnVY zv~?vByblwRB#Jv>n3aHFfZTf;IAzovaw1t#P8q(`4RIkm8N$Vy4jBw-fhxWYJS`Ix ztz{~BRh6`z>QzX>$sCas;|OYkF;soufmOkDcO+d^tS*#xE3kxmOR6gIfl;Eb#BDb# z+HYhXtmJyq;e*)qSou&Dr|LY^ickcU6m~^cN)w8KNs6Tp2vTqd%E7mXQDwN%{@jfd z$F|8kxFFD|Woeo%plNr(5L$v24#Fcx_48^rsIKGxao-<0oqa&yVzob}F~?_^hv zniD@L>xZ8kTlF9Km#!C;xx2i-CiT@3OBRgDS$Nt0TW#~t`)2XFcZ$BedENV6-u&*_ z+*eFaN|QYGXqJ#4jg0+&xn^S{$3>?(ofdRj(rHEK96GJ(w4u|MPCGgobTa9* zr*keHH=Pc2I?_3h4rWTTb)th0c5AlIbh7DmfrFQei%cMO7XWn!XvzQ@0_H*i%7p;O zSpl;4cGU9Jg;veB0bsFB!|?6e)`|<>V8z`u8?9@$iv9McGJ`r9#*|yfMh`WN05YLT ze)T2J$uQ+Tq3I_w`@>w|=|(Zx#UavRT6#7uzccR4*w_{){<2k%fMsVIoAzrQ&M#a! zO-1sv^4Ck{<9^wmM`vg3zf&=--p9^B)U4#cHHm+}TEcnsFWF-gJN_;Bp59-xQug*2 zg>Mw$eo^>FtNq1$9L3^aw8znE+2d<|NsJf;dc)5e&=9R!CMEyb>N$d66gY!HH~8UE z)%#x*I8Cc&&&&TE;G9XV&t}J&o5JLOrg!GJPNWUG%Ya-B~7=Y~pFf?qX^{WOjGGWhASXM-n)XgB-c;%uLoN>&!! zr(yNA=jUd~2VaH+8?(0J=T9nRYW*?uog78>WPbI5_P#4MTVL|#zk<`FDFP3WZu`LHl9i}J zb>`Pod>H3!&A|_tM42r+jh)w`%G67doi(#R1%I#3fih$Q@NA!&Pf(vov5!V75iohI z3|ZFcmC`R|FuqE2H2ng1a`dyN&eOk`n!$*__kq<`Xa5FjkALm6s&?~xtRsK<55-z= zHE4;m*evmufGvRevLsmWma!$t0@DJPR7;x0VQFS@TGA~p%g>fy1s>u8B1-bB;I!Dz z&s)WQ`r?1a*E|Bp{!u^w>yLTFe!znx`bV|>&lq(u^&j=~zaDk$JaP?A5gMiF$Pg^8 z|6QND3AXyrL*swr$6bQSzZ_g**UA4zSi~iyJMn9QUu*m_XfdiG8@??3`0R$C$C_ZJ z{?5<@h!&yuMF}HyiguWu{S-Rij4Ro@XhChg8NJK&Y(*t?5bVa`ZjU9i%!F;KMmvkG zwkE{U>JD3+h2{bWSSxOC7)lT9r}F`w?R0j~*+gd>ovm~>!nVjblnf%9D|m=?d_mtq zCcZ}Bexm~(|uHse1qJ=;ysCe!npQHRrv*a(j( z6bz*Y;0nr^ma(75QERY)&U}D`);KVhN~Zis=MaF$DF_5anva*R8uAdtO9gP|!%@Mt z(o3i;=%^)=wn|Z>IDuX4_CZt=PtOUqq@|!GTxCK{C2)chA2`{HF;OEr>dg?mErQ$> z%-gLA3DyLd>vIKxADJomIhr>uB35viVGW(W9I2R5VQ3f}ysFA5+G;dA+pvy_lO>)e zF?gdw{SFwx01(__pRVZ(>@;{WRC;f`u8t1sNvvg)2*+bylV!>nwhJp6xOZWm?SwF1 zF=s4BQ29h2Tbksx@&>{pEMq|s>@FGrzn2ACjtZ}M{IIqdjZUIS$rnXcCKWz!LT zI9tpF5DS7w=+$SflWQDoFi4@ zZ5o#U6P-pnVLEG3IoG7VLaoI#bNG5)WFnve&*q3&M^Q#+XZ2lXGKvz)tIa&&i43lg z9-iW5yD^=DsQO)EHO+hjffX%gLG{vs5y`7tUB(+=mB14yJWDf7kgm|oi@uW% zOm?~S{dBlw^iy!cjqC(9aHAEYRC>rp$4(~|PEZPb%Tn914xj>tNIJM^GT;m|i~?_m z*?I`m2oLUhW|)P-ClS|>0Vm9EGw8zozv?qC_f22u7!n#Va92aBH33j?h1kV; zK*#iXh)$nJ$jo!n0c7~K4gwG}A{zj!Z7330%DuT*<-%IVt4PciwGG`g2((LY=*zNq znPp)Z4B_B|bf{z9urZP{j7>EhiG;mY(+m400!p+^`vPV(43)41<_|_a;0xQ$6uphr zc#T3{a-)u5n@CzV!4T$9@gk;L1K}b@4TxrOm?r+@g`H>sMVNCa;YwPDD_#W4A_eO> zx^Sft#$sR(!+~^_9cu^0*qhyqUKXjB+UzJJS}yQP?V{L-Y$5a%H=4jhxz1#uH5`2_ zeHpQLg1oXsWOx@-+(rR*DAbz{Cn7YM&QLh|ZWA}4^@qtAAT}fSnInPn9%ARU5Hz3; zgaJ>pkMqxnU_WY)6aHJ$yI=9@eKK*{brXHdsvcgg(Tf+vq5| z4OeOg5TSM_gL)+0!ww)!&QJr}_c*)22bF2%2{_u6N3^Oy##Gs-%(C#PvKv&{4Mtf! zRatthVhA>{7F}2@c9Zc6P(1^pz*i4lQZzRi7XGPo2*y*P2sHu05vsse3G7mVUGYSy zIv7Jjr*}HB13LKu37GM!b7E*h;mz;Rz?!pzH3LJ_v!onc)VobpwT%Jrs%|ZgIRuB( z`O&TP){?n3z1_syEfG2v*kbXD5D=Cgsc1D^FuAM_59GxA8Z16VbUk_yp`QGJq$vJ?xks80W;A24e-KIaimCn*7S)~stv^Z1K?wv8O5l(R9FlBbsBBc2P7nN<0X!t| zfeL&ef$b`=T>_g_U=ydnDf0#w#YHg`55&91AqJ-l=EOsiUsJ_iV=<2u^U&Kuye;U> z7B5^>wp-=i9j{^P7u&gZ@Ud{RecBi9*%7<(!m$;$_lMYpTAf?iZ4g8pqB+CPf4n{t? zP=2I>lJsXSPy*C>D%wNGXq^G~0WkWYPBn&Vd2k2OPDKI3IGbP`he{-fb#T9mG`!4t z7_ma@c@6@ED+w`IC2^c5A+(7~;9(~~M3>BpNwX=F~IB1;}qZ+_ppZF@0MW1gH0=)igY_qze2dK$Sm(lS zg4Lut&Z!s5Bs7a@oPAV)j1tcbP(pR`?M}P_0+0DF2|qI7;(Jd5%!sNeHxn@h2t7Y) z{=pQW;lo-%cGB}xDB4~#zS&}gzz_0E5%_`(Rlg-tSVXCqDg5jUl?G!Bd{~`EZhlaP zMBxjzfK1pi7{RWxdkn$qt5l13ON(K{mSBPTlRmH@51s-3Oh(eW45I7p;2<=-&Lx-> zEEd@E%^I=E3|KNAk3@~Gj8>jbuuMRZlYlt50=${vaA{~?&iddN)h7%jWf9pkET%;) z%nvLC4iHo}5;^#s^7ckUUo(VVUf#7}7Kkml?lBQje=^_bFygW8p>CK)z)}MbLUZ}Z z3?5W`T=!Vc7Au4@z;>iy>CvpO^cSkh^aRJ_c!gU|rL0U=5`zii4}GTsHV{d@SwWtU zKC2B0)G3D_FG4{tIygT)gI`NSEeybm?^sDK!BnRPJ!obCt{q?|2O=D?L4397fRl66PzWT+b&_7PRUft3}t=WkDOQ*{vr z-tqa5WK045m|d`P;++j6j*6oD3XG` z>>{q<@?_9rYi0@!RyV_RcL=f>H ztXZZ2B6w2-AjLN)0DV0kD+HTbyqw@9TAkp;t0E~DG$QE*cGEr~-ssYkgn~&{gptRX zxq6AG;dheTB&QWT14AGJ7#rpZ#DgAuD#M6@T|V|BxHDZK0&;^tRR{zQFyjAc9F}k< z-bf=K0xz0{FEb9S+>FH%Ll#hr-8lP!@?=_DX?89|2WSqXr3elhmN8N)S*eDIN4 zU?(LRa5`WyTmpo2veSWXBFkzJ7krEg^qVshb&MFiOkjM@DGg^fS}5k6Y^FA~EBG?_ zNZ2z)7+46`jKNaa47j-TbiDBcWWZ|_*xUdp*vFA}@qU`42_8fAqVQc|FKrnD&_ddc z?Lj2E5-BoVk_ctt*v?2!iM;-92zHYsov|RmFy%!~D?{EihqMxBQ8`7>2js%*TijLg z{vgp6Mz3Lt5UY^bft8F)0Z8~U1w6P04{{1qLZLH1Gv&?s!^stoX{^L9oeHeVRw$EJdnNe^Zj zRsn#QXdHZs*mrYa3^IrO0Gd<w9xTUr!v}!lwI+!K zku`E=@@01%r0oDa7e-6@N++g1hEb7Ee#TK0Vs&7Rpb5Oa!wG^3);{pit~95B!~rx` zmL()joE=UYUc5ow891X_!9WR5Zsm~_Cr}X}x!gjHi84AO|8`=kXE2gVcp5lTm5tYjM z6QmO2L?KwpYo3b&`=gQjr5)gfqNKzS(oN}Fa5ForqP9Ev!JN%TfLUN0l@XAbA<&Ev z!72a@_%cQY3Nn#N_y|&L5~3qVyWoka_oN(vfl6{BB2LMoIe|G8&q;VpG7K}}LQz4H z)%&=?777qP0Yo?9#G71J;R`FANimaZS{en(z=8`Nb~w?d@?lVSodI8A+bsTjd%Msav-dolmZ1x0z!CaJhAt?}O>4xbOW+E-Yq6>Ztmt>gR8cYtV zPTHHH8N5YAdzzA?ojVELJBCG%zQz=EW;h*^M$yq((#|o(N=?%oX+&e`8(Vd{VV5P^ zDemJWvFHUplnwC}k8>n_E)1BRHaf+mbKNP7a>m9vt>_l3wc;#Eyn{FqEDZK0*r&w; zk~(0ORXS13hJ#0)RtfnS(o>y=$e5tZzyig3Gg8o&Lq!+`8G%V*Bg~AEf&ZnSi0*JO z1i)jI3`Y_<3UkA%GB6fYP@mD#O%qTc+u`0Sk3<6qssT6ZU^Pyw0~JN% zu!b>2b|G6v4KMnEL!BTHLtKsMmQ;Xzm?NV!XEr@tWNo3Kh7c%>Y39=aC2s48O!kcC zr0JBZ)3~jHNzu3{lHg07TsfT3NIrm&oD%wPR|v*F8(l&j=sxR>CS&%1;*hxjQ9&}C z9HY^AU&Gt9OENY=-BxbC^pEN!gh~Z9usp$;Nfg!%s{+7fkEM@^&=A3&^6gI#><8Q> z+fa1O=rlf(AW^}AL}n8Pkywa9qOoRi3P%_VbD@!e#$+=K>q`{Is4kkZ!NV>Z6*hnk zjs?Bk9}Cw=Mjx;^k`e5hKo2>cl)AIic7-Ktkx59r?h(49=cz|gl12^~pNAZgsA0PM zkqO3gAof)|g&O#R3>Yfxh?o;vKgKl*is0NwpA;GD8Xy+4v6g1Muqa|YVRJnWwwL6CF9{tGvf0AsxHi)lz&hunpd z1hoyy__G>9qAGC;;<0Fg&2CYLiK2c?0^6|*Z>2ZplT7|&yNNEe1Y=(G(vK| zIa2^AgXpY4iyqm^7Q1x()wM*oA}}*Oi=9}+kpSmdr~<4+!YlJ4Wz7m<){&>lM>svI zZ%SK4;R3Zn7E8|-t7%#+<=A)%CIijzHk}f3G{h_jU{eq(!c-Hla1eGuf()ySMw(h^ z5O|XV)z=uDA$(-#AO^+=V6+fZFHK;L2yew0oc^WJUHB4ilT65*5zQ7cVMIBvQHfC! z*`xvUL?sFV{O)el=p(j0SW`6HKI5|(8R0GUP{d>__9ZYvvaE2iETD!pLj^ysA=b(urkO!LjMO7C zmo#dDEXaYg;Zg2f2yX-8!%i9q7XxO0=wb7c5W)k0!k@6$jAB>u2mCiuc}T^lR|G^y1$hE%6*SmW zeqRwr8>QD`-ceD+?JjIb`VrMT#Z2n>da%rZirgLT6}ekf!b3hEiu*(#cuhs@R&%z? zgb_XF6zx)TwktAcyVRWRGUkl6pgxcth^2!+V%x$zkPN^^GA2a0-lM7~G<{6kr%pL+ z76E1afq|$vSbEgt+prSDc_bi&IvWt-09Y0SWF9;)!u<*Wknu)vRZRZ>E!3@DZz50OuPizwm)k$?yRdv>6+qL{&ELr5fPXQxus z?nYHHUV1>hkH};!dc`g=TQXv}i*i>81Y-lt8%Y7TU=~b^dO`46hb#`fk)T4b3C>6( z4K_3x0w$T|ncL_COBi03GQ2Eecv(z3&Yl@@?6KiZHIrkyhtJlS$uw<@w%K7km>CbI z)I9NefHii42zkiG?xsXeXE1(5Cof`w25^;$^aC+u%fg;QqlSwU0rh%B@)^)`rTESZHGed1RVCb7`V;q)fLVh!j)`o;eV$gEb;SbsQ!zdF-KZ zL!{2C7B=oz-B;aM53)gK+z64)4y{8)_!vyc56M;}30C7Udt^m$LNS!&BntQ~#tkv< zX$p|Xc%D!ng8>5o-iR(1E>f}JkEu*EB{Jik(8R_h zA}CXNj0lR}p%rpSVu>x{4M}Q-DgEqD_)sSifaU@own^3-H z6S_3dZx~4nRK+G+MN*~?$n#CI3(7nn$7zH8BGEMr=0Qx(le*Xddzr%!-)1c63{e2V zN3rBkiGc)9p(FUTDpv|`4b+261hvb(NImX2RO|uu*ava8qWdE1Hgp0E+N5q>z?o!A zW_%$Bty4Ud4G#oX@PN8Nf)nK%<=6#muU98ESZtiAny-^80B{3@ZO}UPDMv(0d$&4wF?k*I84k|NmqYJguY^a^WmqDjBoo^3a^*JjG97;Az=<^wY@1-z0Ak`hTW#hI(yeFhS(LRd!ED71T*2cHMkxPad?3ZBI zGNE@6Z%03~#I2(XZ38(^@ zMau1p_=pd<01?+l7k3?WceD3wEi00Bn;H=BGo&fr%~4aq%m6JvRVFRc6-Y^#)f9tB zF^b@hN_%u6wi0)RR8CP*ObIoO^QAgNLL=1~5*n#aNoY8T#ZqY?B^wJ=$xb+vAZwUg zG?}3uf&==?lJ_YU<&d^{7?qabQ9a~25EbA6$ZBN$;K;|ARJu6i+0pE`@PpM<{Rcy5 zdQ@eKYm-9V6j-=}dRRtWyv!qh)lzXZ3!B3RByK;tfeqpxBJMD8M~EwU6Y`0F5?pLE z#IksLv8k|{WAtNVfWLu#C-FBSX=Pe)8j8SZ*aWO8wL8DypkSPpzq*S&P@*HQHO#wBS^W7AzU=pIKL3Ra;$N*WZ%^2N~ij#`MSBUtS_moD81Z2yN}0{ljq^TydrrNtB}W2;K`8)BRxMSKR3^t>t#-f zrw_mK`~q)Tc}`(rX+f!{B(J!ztRSb@lbchL=k=79m6qoe75MXW3rjuud4)N7<%Q+t zK99E`FE=m0ydb9}*I$sAroixYSpkQ&NzdTbf(qEAe}ZN<8SDx45X(>nZXU7w4CHi&1k) zX+a@s%`ME!^ZQEB5LzxN@)Z>3bG)A1@)EzdET`D(&CAIzDa}WH09|PzAUy?;_MHyt(f-=H+W!OeFAC@i z0J`*aKo6K*<(pPf`b&bkw4|)4EI*gnQs&3}d&|8!g+=8Bxdr~xyn>w4^5W8*{Ji2~ zFVMkXP~a~q@#X`8i}DL{i+uUs!lI%=;AKe>aIv(cwA@pcUz%TDURdHU%J&rjSBw3H z1^HzjUuj`!8SuBDsLTf}^%r6>e8qX*(!64n@aE^2 zmU+wa%1cXpo^oFaRvea7NuD1IEx$Oo#N*8`^_9R^Smw+1dJA*Pfw={RWu9VxS(z`- zlUGs%qA;(t^>B7LlX@6}8hVeY1xnr;}yekra1cGmDlSon}o-wP=YW{gr-StzXl! zE!uhgtEbPdshBdg&i%?G?#oa`ty|^qetAXJ6gLQ0k*4*xXcr05W9=2SZl8O4_4N8m zUyXYziguswuPLvtndYl1^}8<{b;WRZx!G$s;@#|%rlni7RBuiXPY-X8oSecOtoA&M z)>FlF&G!_8koiEbKtT#~y?#*4!a|U}yqscRS%Dv5FU`v>E77zxP;avS_SSfmQX>`d3%o;IFCk*JPJeS66l+7^_Qat1JC=Xs3UT z-&f}cTuaSd?wJ*JQ{87Pj(J9vNI{7yv%9&C>Z)q%{Jt_YI|9Z*M^8odb+f0V_vRqW z{L^dvr6^P8uBdX?P4&Ak;Z)U5_m@_bS0Di(>ERwzi};EvU(IafGHblTqFwfH)i|cU zf~}hMwXulBQEt9z{VFS~XAY~ctgDz_>DQ3r#%eix$_m&TJ$p(3E9UGeI6MBGlt9v1 zQpEG^A>(zor7P(*n0yv_M!uhdC?b8u3+?xo0Ak{s_4L1)Qp% z;;-vbT{ESpfp)b$qbpYN8kYdi&W2&d7A+66Rpzg0icXxxQRpym{YIHsGgD*=Mq9Ki zMgu=cH2T%n`lppt&c2juxbDoF&Yo{DhF!@aN9Q&07+~|@NPoG%#t&LB(hu|o&bz1A zRD(p+0i|Mbo}DBbo{|5`n(7-WIHpKBEX`Vfo#Y;JM)nJtM&Q@>I3q1mRUdbD7k8hF z+%-m@G%fHbI=gy+zuX7p8wLP?zK-(yYD%YGTIrio+qAEvt3f2nD#~X|AEv3?Xjg$) zmXsg}C|~t7w^1opJQitbT?7t96p)&l8jMaV8sx8wOjAjv-{^&Vn!j#pb?kyEvS_&~ zF+xR}_K&cPNs3H!04w9Bvk;LU{W0&A{jm#-_Rl(P%0~gxXDiZ_?kM^csphoAC{B#D zXv0XMhx_Yt^A%<3Up;L)u(G70vI00Uv!b#RWEeA}mJEoK&s|<$R}WeWSaHvDSC_j@ zDh~puX$J;hdcLp6sjH`j{`Bno?GIgaWZ+G`ColTTfyP%a`mAu>^6$R$ zy>ondT|4cq?j>>6yK-)t@Z+$D&L4f_zW9~?%HwgpHa@*_;G^$(FKmC^Q}3j0xM#$d zo=x#j{;^xxcjF&lozu4T+@g-&8*@kA*8Iw@>DVqu4epndU!a-w zzG2jhzE6KnueUf_=s` zyy#`uCTd|V+ug-28R4-0UieMGZx(*P#cubxvLaR$J(pjIEuhS5|X?F^bG!H1PXMrKQY8X|V zhPG+?uom%`iJ7`8;LC7~c(mq5&9!iS_)SOd>0&vNy>@Ffi8uvrcd-swqeTrZ(uk%X zIW9x*2roC%I1;ur6SdU9mNnz(b4S|ZzzQ^I-WdI&rN}B^_;8~n(}zn9btp-wD1&;8 zA4(mX$oK~!*O`_eneWW;MMs*4o)9({VqHY*8jHGWP+JuCUYP%6&K@v&+XMa_tx$ff zf3Vg9WjT|kZA4m$jE>-J{qGUet1{#!ow!ar5B1On<`j&+QXn!Nu;5G+=5@%!*=ri- z)*cb4D@b$RV%zJkU5?Vk6F2%xe82$)|1LmFv27`=qp3?8&E#AWGt|E;Wqel{{a|hE zor%E=agNVEPiGrv4(O1@FmhT3+$zP$qR={XzSxTf^!)TPr_WOC9Cg+5QKA^Qm8a#R zhehz`0|La+Ld1CS^aw->5%$7gikvyfMN6XvNG(8onZ)MeiL(}Pg#GRZ$k5v6G_e#q z8*u&m{UE*&yZ-OrFAjmpcA>cI3V!jL|F6RT1rS(6hQ(^tJo>pS5|S>MH+bF;X_iE5 zqkirpL@lsdEZ%0Gw1lL|^9Eb|aW<4})naQL?iuPiCnlzuCn?UN zHQMgC1~kZ@o0he?XU;$L@tcLu-?VtbumAk{AB|C zF{8XKJg-LPEJ4Q+j zh6KuuBW!(*$e#v|b&ssBu51$Gy=l9b>_P>50=V z%`lyoWUFqmXusQWxc2j(cE5PId-t4&{%|;W@f$lk4S9CP1+VV8D{spE$rin6iPw&PRCLE@35V@VQnzLI8}rj!6Be|bJL5?HmSHtXeO|h-=*p{SdfP2} z=Jl+BcR###n$}{1?YS44e>Ea`S-*ZAhx>iE1p8h2(Cmo|K5lc_ReO4TJ}F~Vx4Fx9 zwoPcYdTQ;iJX`aLt7g16Va}M3t||MZ@D|Tl+u`)}T>`E@&n}*SzcqbM=kn*~KR4^U zH`zhwn3S{^9%_&g3wab`1% zXf@B%jN#@C$9v-N@MJQ=VQXb;@zh1HR>YmyGRU%f+4*hl)^AG7y1wc;m&xbZ zT6|~T1MN1-|l~Z#eKc!mnYb->hMvAK_@Pl^5~Y=-`}_| z-G6)jU++CRaKpX(hI%jGxa3IxZnr-(>+O#|8#Q~z-oqX4vV1t^mbP^2*VpEoaj%7Y4)^?}(c9|0?SK5#-zxX5Ep6L1_Brw9 zHMe5ZtABOq{I1E{ep`|D#llawIPG2acY_+Zlo)~lNh*zNXybnJ!c=TBNZ`QA;JpOe&c{afw(Pkke?^UJ@V_`{bS zo}cPk(R;;~drt-?-c!2s=%7bCb)M2#_`RmzJo^1dPJGd$`2#bLoO_u^w=Kb9o^34T z#C81^J=ng*!rXS7K7Ouw=)73WP5JLw$lfAPUQVGmC(oN-jD?&N8}v+QN>(uOzyOey zW=a}fU0idA>@UrEJ^*4DkpZHz;ni-R>SzK5(YVYTJ9KCNZn>A#7 zO2=IyB2X~6-O4dbdrp2>@6=<&Z6Dlo)zcq-dTTG+;#IBAJNf*%Pwqclc;JKc z4>^4kuJ?V~@ZDq6o=N)thrF*F<9+ttqi0|K>5AFMo0nAl<$v(}jb*D_E(WA}#jMP?Cf@nP{Cob^zk2MIBdybBom~6LQxpF2 z$~=APbAQO}WJ~oVC)lx*#pC0|aUK^Vg&x>F37`j7i{{BQ)A7B>Y|r_gEHmt}%xg^v zJ_PvHrM1(WY$u+}S<|_;0iH`deH$-o>^<*7BWr0*Wp0zKJ6uHnt^WSY1GqyRKuj$%y{N&#}x9-HmkHh{R2Rb=j_f7k2r$?^+?!K4YdtdK&{Q9B? zy*JPPZO-UzPaH}qzVA2B7cV?dU-;;%;&&IUN?!YHWwW1#e>w3_bEa*5#@Vy(+n?_& z8C>_y2Q8l%_tSHoHh10s&gk#PuUkJM;l5o9Ur+q%?mngC`tLpbc*}(ID=*EuV&vv$ z55K-4!MmsJwWoG%%71>=tzUTbcn~Fd4S zy$#Ezy>#_$6JL33Mfbr!z4mkH>g9LddVkwb58XB8>PKt?&R@Onv&?Jmzu^1a)Qvly z&K)o>uJaxG-;PYLzNN>dy*fV9?${4`bFTVgL)!kkw!NM(y4kmnOswhfhw(pj>FUdG zbJZJnXa2No?8crmuUt`^|Jt7hZCp0!S2I4>y$6Gtj}5K4<_}lYjC|tMHA{|N^xEy? zXB@x(!Qst5S@GA@>`6af{Jb~kZ=<`fac!CL_W76G{mrGHzVO(|ud1fot{9ZpY~-O0 zJ6pU_P=2_BulMD5PFVK(edpiw+2}9E^la>P!H!LH+th8nviL?@k||`SGS4-(T0?wy?WmHgs!yFt2T!kfpQItti8Bjc4E+Gn1eFy337Mr`+1S z%j~_Me{?>G4_1D@^Q3Z6vbk6xJBr~H!S)DIZhZNk{i80aDqS`HuB`ZtwQoK-Ij6q+q#xZEbluqe zfb;R0z2C`dH)qV$NmKi0xBs@?x_+i`+N9OmuEC~`v1{rV zD|Vc^$g#X%M)vtDeOkAt^x5Z>9@u=(-ww2ybi>Le>zmJK1``!N6caI#s z=HcHB*}k~vCnp!I9W%1v;?FLBI_nL6S622V-wg15(eI|L?3(o7%zOX7oqYyc7T&t) z#k+lLdTnn#@!or`9P{}tYf>7ukCImmN^Tc?^u;YN&!3vuGVVY@;tjVsFA1MJ;;nZk z-u}!%+w`CB_*KpOeZMbS*zjiey7-3rOGmE0eQS8jfc%BOou9SmliVJei(U4!1T>MocKh>%h!L55q0N2%0C; zB%8OR&AsKb$JN=3aG;bx-GwNz0y@@`Pt_Oz~9jg`T2D zSHKw~(-cYas*Ztwq%Yu(MJk*EZMsFfu+{wcdKbsdDtTg4UDwCP4tw$O<$qalc>d0; z=kA=aWqV@Jr^0vN*|z_b{ar>rwqnn)A- z-5p(D`YQL!5lCl-LWkK;jTUt8l;8<^7WUxR4jOX>iL&m+hrJ@KRN5FitWvktg{Y$FzV&yA5Gr2^2;ZlJUDmWWfLD6=Ua14 z-L01FsWrnNp0{#?b>uD6%Ll)A`!~U?9s57<8~jIH5zgFsXK(^d_aGi-GdofI5qk`> z1IAm_2CQ42Mc`@tR>fkwZn@)MIDY7sGIJ-jT2a;5_PS*xME|^+a^uQ^7XWU#igM%f zf|p{vc5q zUkcZaa{NdfKMkh*{8AaODb>fq*k9EaYh>Tp2FF%|5ztlRWpAb;oq3qUjat|`!{tW2 z8fyFc{Vo9q%EXpa?bXb4H*z2F(78b!`7WfQiU^X z|7|}#=ZQc4d3}EK{a3!S=eJLE?6}h5cry3Bp{M3-skWp)e3!rD#NTyXwSB?J>+fDz zJ8|DN7w3H3YVy$A3Ql>KCvSea;kiYb-z+%4dHmS#2kjhm_2Ugs7d?61c^d|P)_#7@ zrGei+_t5f=r(T}*&hgtmNL?78^!0$x1AC@T-*Mll_MH!0F!{yp z)b1E}#jgiuAKtWL{^!|mPoC7h)1=#KdpwwS^@tDe9{%%{@e8s){BG8ZzaKYi(SV27 zUZ^dZRk5JV_THr5{NaKvKR!6L+nqmue(M2!?Vo@D%>DE3etFD-vDXc{_^*3&m-f$J z5I<|eg%uxm+-U3nUiH-cf*V_0H1LaMW%HUfPdy(pym&8;%WaHZD0x+dAbTY!xR!aHs?B886${4lb4NID-u2_n!=}#tAkNfZNEEZ^k-|5W?X;posQ0C z_3zB68J_(3ANpQ6@wpM7teV~8cf+#I^Gw=wwD;ue*7i)?aq8PI2ko1Gy4gSo(mg`8Vly-nN`(Po<=53>_4-f$}`LU9kJrs%3i6q_aUA^o}z?g z9(-`V)~vRF>3|*GZ@>VbI~o1J+2-4Eup zDLHbD-l_ez7cy?@*5T8=S9fcX-`_U%>5uBI2WwtmwzqfL;d2K&TVK1N$TzIy(yUub z7cLpu?a3|+4$nGwZ%T^?1Mj;AO@F3-&z<2r=RSMKl%GcV7OXjb{cpA&8&{DwXS?O8 z=dmAx|`a_LDi6T$25})??r4m-lS>q-X1HIzBeHW6zESPhWojWlKLe{?P3sy}ET6 zgg`@hoDI(V@1RCj=h@B+P0qQ?JZ&S#Ae?j4njCd-(2X2r?%m;P{H zQu6KW@X@7Wa=+}#89=&GZm`9pzs`%oK zdFSoD?%tN0UVT5VZ`GTDPEU5br~8Jb%jb?=H+{K%>=E1Xw&x7co`2xJ?-wQRx%Qcw zR+CCbJ~m>`qdzX_*6AbrH**^w+t91S%g_Jt{AG*ZKehOR@FfeM9{2tQH9xN`xhB~5 zl|OzqdFy*g?T>9uwS4!$Lm#?NXy3p6-GKR1r}Vt~)ar}gs@qoVcHgi(yR6)K{r<0S z|J^J1P5kiN$NH7touBvNHE*B0=C5BJ$~)NNy^(F+`Tc>LZy*1rProperties\app.manifest - - False + ..\Interact\Newtonsoft.Json.dll From d20536e09aafb767535b61c4be2c0f759a1f983c Mon Sep 17 00:00:00 2001 From: mattuy Date: Sat, 15 Dec 2018 20:45:17 +0800 Subject: [PATCH 03/23] commonly commit --- Interact/Client.cs | 48 +++++++++++++++++++++-- Interact/Properties/Resources.Designer.cs | 2 +- Interact/Properties/Resources.resx | 2 +- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/Interact/Client.cs b/Interact/Client.cs index c995f73..3ed99bc 100644 --- a/Interact/Client.cs +++ b/Interact/Client.cs @@ -105,11 +105,11 @@ namespace Interact /// /// 登录。此操作为异步操作,服务器返回结果后产生OnLoginDone事件。 /// - /// 成功将请求加入发送队列返回true,否则返回false。 /// 用户名 /// 密码 - /// 数据发送完成回调函数。注意,结果处理回调请设置OnLoginDone事件 - public static bool RequestLogin(string user, string password, Action callback = null) + /// 数据发送完毕回调函数。注意,结果处理回调请设置OnLoginDone事件 + /// 成功将请求加入发送队列返回true,否则返回false。 + public static bool QueueLogin(string user, string password, Action callback = null) { JsonLogInfoHead logInfo = new JsonLogInfoHead() { @@ -126,6 +126,48 @@ namespace Interact }; return Send(packet); } + + /// + /// 请求发送一条消息。异步,此方法将请求放入请求队列后返回。 + /// + /// 要发送的消息文本 + /// 消息接收者 + /// 数据发送完毕时回调函数 + /// 成功将请求加入发送队列返回true,否则返回false。 + public static bool QueueSendMessage(string text, User to, Action callback = null) + { return false; } + /// + /// 请求登出。异步,此方法将请求放入请求队列后返回。 + /// + /// 数据发送完毕时回调函数 + /// 成功将请求加入发送队列返回true,否则返回false。 + public static bool QueueLogout(Action callback = null) + { return false; } + /// + /// 请求用户列表。异步,此方法将请求放入请求队列后返回。 + /// + /// 数据发送完毕时回调函数 + /// 成功将请求加入发送队列返回true,否则返回false。 + + public static bool QueueGetUserList(Action callback = null) + { return false; } + /// + /// 请求更新当前登录用户信息。异步,此方法将请求放入请求队列后返回。 + /// + /// 数据发送完毕时回调函数 + /// 成功将请求加入发送队列返回true,否则返回false。 + + public static bool QueueUpdateUserInfo(Action callback = null) + { return false; } + + /// + /// 请求获取指定用户的头像。异步,此方法将请求放入请求队列后返回。 + /// + /// 要获取头像的用户 + /// 数据发送完毕时回调函数 + /// 成功将请求加入发送队列返回true,否则返回false。 + public static bool QueueGetUserPhoto(User user, Action callback = null) + { return false; } } } diff --git a/Interact/Properties/Resources.Designer.cs b/Interact/Properties/Resources.Designer.cs index b1a5aa2..66f8f97 100644 --- a/Interact/Properties/Resources.Designer.cs +++ b/Interact/Properties/Resources.Designer.cs @@ -61,7 +61,7 @@ namespace Interact.Properties { } /// - /// Looks up a localized string similar to localhost. + /// Looks up a localized string similar to mattuy.top. /// internal static string RemoteServerAddr { get { diff --git a/Interact/Properties/Resources.resx b/Interact/Properties/Resources.resx index 3029213..f7b9790 100644 --- a/Interact/Properties/Resources.resx +++ b/Interact/Properties/Resources.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - localhost + mattuy.top 3727 From 84052a0622b4f5bf58b6fc80eb1adbb41da40cae Mon Sep 17 00:00:00 2001 From: mattuy Date: Sat, 15 Dec 2018 21:10:10 +0800 Subject: [PATCH 04/23] commenly commit --- Interact/Handle.cs | 2 +- StormChat/LogForm.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interact/Handle.cs b/Interact/Handle.cs index ec30600..b2871e3 100644 --- a/Interact/Handle.cs +++ b/Interact/Handle.cs @@ -51,7 +51,7 @@ namespace Interact //发起登录完成事件 if (head.Error != "") OnLoginDone?.Invoke(head, null); - JObject dataObj = (JObject)JsonConvert.SerializeObject(data); + JObject dataObj = (JObject)JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data)); User user = new User { Name = dataObj[AttrNames.User].ToString(), diff --git a/StormChat/LogForm.cs b/StormChat/LogForm.cs index 7b99280..abaed82 100644 --- a/StormChat/LogForm.cs +++ b/StormChat/LogForm.cs @@ -32,7 +32,7 @@ namespace StormChat return; } btnLogin.Enabled = false; - StormClient.RequestLogin(txtUser.Text, txtPassword.Text); + StormClient.QueueLogin(txtUser.Text, txtPassword.Text); } //登录结果处理 From a3ed62853abbc5ee8661c63913ecbcc67cc8de61 Mon Sep 17 00:00:00 2001 From: Kaniu Tayou <1056879522@qq.com> Date: Sat, 15 Dec 2018 21:11:56 +0800 Subject: [PATCH 05/23] new wpf window --- StormChat.sln | 14 +++ StormChat/LogForm.cs | 2 +- StormChatWPF/App.config | 6 + StormChatWPF/App.xaml | 9 ++ StormChatWPF/App.xaml.cs | 17 +++ StormChatWPF/MainWindow.xaml | 13 ++ StormChatWPF/MainWindow.xaml.cs | 28 +++++ StormChatWPF/Properties/AssemblyInfo.cs | 55 ++++++++ StormChatWPF/Properties/Resources.Designer.cs | 71 +++++++++++ StormChatWPF/Properties/Resources.resx | 117 ++++++++++++++++++ StormChatWPF/Properties/Settings.Designer.cs | 30 +++++ StormChatWPF/Properties/Settings.settings | 7 ++ StormChatWPF/StormChatWPF.csproj | 101 +++++++++++++++ 13 files changed, 469 insertions(+), 1 deletion(-) create mode 100644 StormChatWPF/App.config create mode 100644 StormChatWPF/App.xaml create mode 100644 StormChatWPF/App.xaml.cs create mode 100644 StormChatWPF/MainWindow.xaml create mode 100644 StormChatWPF/MainWindow.xaml.cs create mode 100644 StormChatWPF/Properties/AssemblyInfo.cs create mode 100644 StormChatWPF/Properties/Resources.Designer.cs create mode 100644 StormChatWPF/Properties/Resources.resx create mode 100644 StormChatWPF/Properties/Settings.Designer.cs create mode 100644 StormChatWPF/Properties/Settings.settings create mode 100644 StormChatWPF/StormChatWPF.csproj diff --git a/StormChat.sln b/StormChat.sln index 699c9eb..335c8d2 100644 --- a/StormChat.sln +++ b/StormChat.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StormChat", "StormChat\Stor EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Interact", "Interact\Interact.csproj", "{CEF054AF-95B7-4B88-934E-02705FEEA554}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StormChatWPF", "StormChatWPF\StormChatWPF.csproj", "{CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -41,6 +43,18 @@ Global {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x64.Build.0 = Release|Any CPU {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x86.ActiveCfg = Release|Any CPU {CEF054AF-95B7-4B88-934E-02705FEEA554}.Release|x86.Build.0 = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|x64.ActiveCfg = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|x64.Build.0 = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|x86.ActiveCfg = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Debug|x86.Build.0 = Debug|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|Any CPU.Build.0 = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|x64.ActiveCfg = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|x64.Build.0 = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|x86.ActiveCfg = Release|Any CPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/StormChat/LogForm.cs b/StormChat/LogForm.cs index 7b99280..abaed82 100644 --- a/StormChat/LogForm.cs +++ b/StormChat/LogForm.cs @@ -32,7 +32,7 @@ namespace StormChat return; } btnLogin.Enabled = false; - StormClient.RequestLogin(txtUser.Text, txtPassword.Text); + StormClient.QueueLogin(txtUser.Text, txtPassword.Text); } //登录结果处理 diff --git a/StormChatWPF/App.config b/StormChatWPF/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/StormChatWPF/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/StormChatWPF/App.xaml b/StormChatWPF/App.xaml new file mode 100644 index 0000000..3292a54 --- /dev/null +++ b/StormChatWPF/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/StormChatWPF/App.xaml.cs b/StormChatWPF/App.xaml.cs new file mode 100644 index 0000000..55f30e6 --- /dev/null +++ b/StormChatWPF/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace StormChatWPF +{ + /// + /// App.xaml 的交互逻辑 + /// + public partial class App : Application + { + } +} diff --git a/StormChatWPF/MainWindow.xaml b/StormChatWPF/MainWindow.xaml new file mode 100644 index 0000000..75688a8 --- /dev/null +++ b/StormChatWPF/MainWindow.xaml @@ -0,0 +1,13 @@ + + + + + + diff --git a/StormChatWPF/MainWindow.xaml.cs b/StormChatWPF/MainWindow.xaml.cs new file mode 100644 index 0000000..321390f --- /dev/null +++ b/StormChatWPF/MainWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace StormChatWPF +{ + /// + /// MainWindow.xaml 的交互逻辑 + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + } +} diff --git a/StormChatWPF/Properties/AssemblyInfo.cs b/StormChatWPF/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b9bf3cb --- /dev/null +++ b/StormChatWPF/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("StormChatWPF")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("StormChatWPF")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +//若要开始生成可本地化的应用程序,请设置 +//.csproj 文件中的 CultureYouAreCodingWith +//例如,如果您在源文件中使用的是美国英语, +//使用的是美国英语,请将 设置为 en-US。 然后取消 +//对以下 NeutralResourceLanguage 特性的注释。 更新 +//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //主题特定资源词典所处位置 + //(未在页面中找到资源时使用, + //或应用程序资源字典中找到时使用) + ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 + //(未在页面中找到资源时使用, + //、应用程序或任何主题专用资源字典中找到时使用) +)] + + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +// 方法是按如下所示使用“*”: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/StormChatWPF/Properties/Resources.Designer.cs b/StormChatWPF/Properties/Resources.Designer.cs new file mode 100644 index 0000000..1999c40 --- /dev/null +++ b/StormChatWPF/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace StormChatWPF.Properties +{ + + + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 返回此类使用的缓存 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("StormChatWPF.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆盖当前线程的 CurrentUICulture 属性 + /// 使用此强类型的资源类的资源查找。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/StormChatWPF/Properties/Resources.resx b/StormChatWPF/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/StormChatWPF/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/StormChatWPF/Properties/Settings.Designer.cs b/StormChatWPF/Properties/Settings.Designer.cs new file mode 100644 index 0000000..bafedfd --- /dev/null +++ b/StormChatWPF/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace StormChatWPF.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/StormChatWPF/Properties/Settings.settings b/StormChatWPF/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/StormChatWPF/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/StormChatWPF/StormChatWPF.csproj b/StormChatWPF/StormChatWPF.csproj new file mode 100644 index 0000000..0da8516 --- /dev/null +++ b/StormChatWPF/StormChatWPF.csproj @@ -0,0 +1,101 @@ + + + + + Debug + AnyCPU + {CF4D6BE0-A862-401F-A3A6-4FDAC32F5B70} + WinExe + StormChatWPF + StormChatWPF + v4.6.1 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + StormChatWPF.App + + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file From cee5d98df38266f035c1c9bade6e69f238cc92c7 Mon Sep 17 00:00:00 2001 From: Kaniu Tayou <1056879522@qq.com> Date: Sat, 15 Dec 2018 22:51:48 +0800 Subject: [PATCH 06/23] WPF userwindow and logwindow --- StormChatWPF/MainWindow.xaml | 6 +- StormChatWPF/MainWindow.xaml.cs | 34 ++++++++- StormChatWPF/Properties/Resources.Designer.cs | 70 +++++++++--------- StormChatWPF/Properties/Resources.resx | 17 +++-- StormChatWPF/Resources/LogFormBackground.jpg | Bin 0 -> 72364 bytes StormChatWPF/StormChatWPF.csproj | 17 +++++ StormChatWPF/UserWindow.xaml | 14 ++++ StormChatWPF/UserWindow.xaml.cs | 27 +++++++ 8 files changed, 144 insertions(+), 41 deletions(-) create mode 100644 StormChatWPF/Resources/LogFormBackground.jpg create mode 100644 StormChatWPF/UserWindow.xaml create mode 100644 StormChatWPF/UserWindow.xaml.cs diff --git a/StormChatWPF/MainWindow.xaml b/StormChatWPF/MainWindow.xaml index 75688a8..7ac6f61 100644 --- a/StormChatWPF/MainWindow.xaml +++ b/StormChatWPF/MainWindow.xaml @@ -7,7 +7,11 @@ mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> - + +