淮北市网站建设_网站建设公司_一站式建站_seo优化
2025/12/24 4:45:24 网站建设 项目流程

数据结构:Socket_Study_Model

Socket_Study_Model数据结构层,定义了客户端与服务端之间交互的所有消息模型、枚举类型和通用消息格式,基于 JSON 序列化实现跨端数据传输,所有消息均通过统一的MessageStyle格式封装。
后期拓展就添加[XXXXX]Model然后服务和客户端都可以引用了。

欢迎消息-WelComMessageModel

服务端向新连接客户端发送的欢迎消息模型,是客户端建立连接后接收的首个消息。

usingSystem;namespaceSocket_Study_Model{/// <summary>/// 欢迎消息的model/// </summary>[Serializable]publicclassWelComMessageModel{/// <summary>/// 欢迎消息/// </summary>publicstringMessage{get;set;}publicWelComMessageModel(stringmessage){Message=message;}}}

StandMessageModel

标准消息模型,用于简单的点对点文本消息、系统提示、操作结果等基础消息,最常用的消息载体。

usingSystem;namespaceSocket_Study_Model{/// <summary>/// 标准消息/// </summary>[Serializable]publicclassStandMessageModel{publicstringSenderClientId{get;set;}publicstringTargetClientID{get;set;}publicstringMessage{get;set;}publicstringSenderName{get;set;}publicStandMessageModel(stringsenderId,stringtargetId,stringmessage){SenderClientId=senderId;TargetClientID=targetId;Message=message;}}}

OnlineUserModel.cs

在线用户相关模型,包含单个在线用户信息和在线列表响应结构,用于响应客户端的在线列表查询请求。

usingSystem.Collections.Generic;usingSystem;namespaceSocket_Study_Model{/// <summary>/// 在线用户信息模型/// </summary>publicclassOnlineUserModel{/// <summary>/// 客户端ID/// </summary>publicstringClientId{get;set;}/// <summary>/// 用户名(未设置则显示"未命名")/// </summary>publicstringUserName{get;set;}/// <summary>/// 最后活跃时间/// </summary>publicDateTimeLastActiveTime{get;set;}}/// <summary>/// 在线列表响应模型/// </summary>publicclassOnlineListResponseModel{/// <summary>/// 在线用户总数/// </summary>publicintTotalCount{get;set;}/// <summary>/// 在线用户列表/// </summary>publicList<OnlineUserModel>Users{get;set;}=newList<OnlineUserModel>();}}

MessageTypeEnum

消息类型,用于在MessageStyle设置消息类型

namespaceSocket_Study_Model{/// <summary>/// 消息类型枚举/// </summary>publicenumMessageTypeEnum{/// <summary>/// 未知类型/// </summary>Unknown=0,/// <summary>/// 欢迎消息/// </summary>Welcome=1,/// <summary>/// 普通文本消息/// </summary>Text=2,/// <summary>/// 广播消息/// </summary>Broadcast=3,/// <summary>/// 心跳消息/// </summary>Heartbeat=4,/// <summary>/// 私信/// </summary>PrivateMsg=5,/// <summary>/// 设置用户名/// </summary>SetUserName=6,/// <summary>/// 请求用户列表/// </summary>ListRequest=7,}}

MessageStyle

全局统一的消息格式封装类,是客户端与服务端之间传输的唯一消息载体。所有业务消息(如StandMessageModelBroadcastMessageModel)均序列化为字符串后存入Message字段,通过Type字段标识业务类型,实现消息的标准化传输。

usingNewtonsoft.Json;usingNewtonsoft.Json.Converters;namespaceSocket_Study_Model{/// <summary>/// 消息类型/// </summary>[System.Serializable]publicclassMessageStyle{/// <summary>/// 消息类型/// </summary>[JsonConverter(typeof(StringEnumConverter))]publicMessageTypeEnumType{get;set;}/// <summary>/// 对应 "clientId"/// </summary>publicstringClientId{get;set;}/// <summary>/// 消息/// </summary>publicstringMessage{get;set;}publicMessageStyle(stringclientId,stringmessage,MessageTypeEnummessageTypeEnum=MessageTypeEnum.Text){Type=messageTypeEnum;ClientId=clientId;Message=message;}}}

消息广播模型-BroadcastMessageModel

usingNewtonsoft.Json;usingNewtonsoft.Json.Converters;namespaceSocket_Study_Model{/// <summary>/// 广播消息模型/// </summary>[System.Serializable]publicclassBroadcastMessageModel{/// <summary>/// 消息类型/// </summary>[JsonConverter(typeof(StringEnumConverter))]publicBroadcastMessageTypeMessageType{get;set;}/// <summary>/// 消息/// </summary>publicstringMessage{get;set;}/// <summary>/// 发送者信息/// </summary>publicstringSenderClientId{get;set;}/// <summary>/// 发送时间/// </summary>publicSystem.DateTimeSendTime{get;set;}=System.DateTime.Now;/// <summary>/// 构造函数/// </summary>/// <param name="message">消息内容</param>/// <param name="senderClientId">发送者id</param>/// <param name="messageType">消息类型</param>publicBroadcastMessageModel(stringmessage,stringsenderClientId,BroadcastMessageTypemessageType=BroadcastMessageType.UserMessage){MessageType=messageType;Message=message;SenderClientId=senderClientId;}}/// <summary>/// 广播的消息类型/// </summary>publicenumBroadcastMessageType{/// <summary>/// 用户消息/// </summary>UserMessage=0,/// <summary>/// 警告消息/// </summary>Warning=1,/// <summary>/// 错误消息/// </summary>Error=2,/// <summary>/// 状态更新/// </summary>StatusUpdate=3,}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询