- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ESPlus消息格式
ESPlus消息格式一.消息编解码总体策略字符串一律使用UTF-8编码。如果是基础数据类型,则直接记录其字节。如果是string,先记录其长度(int,-1表示为null,0表示string.Empty),再记录UTF8编码的字节。如果是byte[],先记录其长度(int,-1表示为null),再记录其内容。如果是List,先记录元素数(int,-1表示为null),再依次记录每个元素的内容。如果是Dictionary,,先记录元素对的个数(int,-1表示为null),再依次记录每个元素的Key,Value。如果是自定义的class和struct,则先记录其序列化的长度(int,-1表示为null),再记录其序列化后的内容。二.消息头消息头固定长度为56,用户UserID的最大长度为21,MessageType取值为0~65535。字段名称类型起始偏移长度/最大长度说明StartTokenbyte01消息标识符,固定为0xFFClientTypebyte11客户端类型MessageTypeushort22消息类型MessageIDint44消息IDMessageBodyLenint84消息体长度UserIDLenbyte121UserID长度UserIDstring13UserIDLen /21消息发送者的IDDestUserIDLenbyte341DestUserID长度DestUserIDstring35DestUserIDLen /21消息接收者的IDClientType取值:DotNET = 0,Silverlight = 1, WindowsPhone = 2,Flash = 3 ,IOS = 4,Android = 5,其它=6。服务器有一个虚拟的UserID,即NetServer.SystemUserID,其值为“_0”。如果消息头中的UserID为SystemUserID,表示该消息是由服务器发出的;如果消息头中的DestUserID为SystemUserID,则表示该消息的接收者是服务器。在某些消息类型中,可以为消息头中的DestUserID赋值为某个GroupID,以表示广播消息的接收者是目标组中的所有人。三.ESPlus.Application.Basic命名空间消息体1.登录登录请求ReqLogonContract,C-S,MessageType为116。字段名称类型起始偏移长度说明BodyLenint04MessageBodyLen - 4PasswordLenint44密码长度Passwordstring8PasswordLen密码SystemTokenLenint8+ PasswordLen4系统标志长度SystemTokenstring12+ PasswordLenSystemTokenLen系统标志登录回复ResLogonContract,S-C,MessageType为116,MessageID使用登录请求消息头中的MessageID。字段名称类型起始偏移长度说明BodyLenint04MessageBodyLen - 4FailureCauseLenint44失败原因的长度FailureCausestring8FailureCauseLen失败原因LogonResultint8+ FailureCauseLen4登陆结果P2Pbool12+ FailureCauseLenLogonResult:0-Succeed,1-Failed,2-已在其它地方登录2.踢人踢人请求KickOutContract,C-S,MessageType为108。(客户端请求服务器将某用户踢出)字段名称类型起始偏移长度说明BodyLenint04MessageBodyLen - 4UserIDLenint44被踢用户ID的长度UserIDstring8UserIDLen被踢用户的ID3.获取自己IP地址请求C-S,MessageType为101。无消息体。回复UserIpeResContract,S-C,MessageType为101,MessageID使用请求消息头中的MessageID。字段名称类型起始偏移长度说明BodyLenint04MessageBodyLen - 4IPLenint44IP长度IPstring8IPLenIPPortint8+ IPLen4端口4.获取所有在线的用户列表请求C-S,MessageType为112。无消息体。回复ResUsersContract,S-C,MessageType为112,MessageID使用请求消息头中的MessageID。字段名称类型起始偏移长度说明BodyLenint04MessageBodyLen - 4UserCountint44在线用户列表长度U
原创力文档


文档评论(0)