我是Sockets的新手,我对Client< - >有一些理论上的问题。服务器通信。
问题是关于消息类型和格式。
如果我将字符串[]作为带有分隔符的字符串作为消息使用,对于所有客户端 - 服务器操作,对于高负载项目来说,这是一个好习惯吗? 例: “CMSG_AUTH:登录:密码”
我听说有人使用操作码作为服务器返回命令。我应该串联使用字符串和操作码吗?如何?对于内部服务器架构,哪种设计模式可以学习? (我知道,这是一个愚蠢的问题,但我对服务器开发非常感兴趣,而且编写优秀,可扩展的服务器应用程序是我的梦想)。我不想使用WCF,我想从头开始,只是为了理解它是如何工作的。
答案 0 :(得分:0)
使用已建立的格式来序列化来自客户端和服务器的消息。对应方可以使用相同的格式进行反序列化。
格式的示例有JSON,xml(使用字符串)或protobuf(二进制)。
定义要在客户端和服务器之间传输的信息的类:
class LoginDto
{
string UserName {get;set;}
string Secret{get;set;}
}
如果您坚持使用已建立的格式,则很容易将这类类的实例序列化,以便通过网络传输。
查找DataContractSerializer
,JSON.Net
或Protobuf-net
,了解XML,JSON和protobuf序列化程序的实现。