本博客为原创
cs框架就是服务器和客户机之间用来信息的来往而制作的一套供外部(界面)使用的工具。cs框架一共有三层,加上界面就是四层。分为通信层(communication),会话层(conversation),服务器和客户端。
通信层用来做最基本的信息的往来,read和write;会话层有serverConversation和clientConversation,在这一层用来进行信息的具体操作(dealMessage);服务器和客户端连接界面和conversation。
conversation层要进行信息的具体处理,服务器向客户端发送的消息,客户端向服务器发送的消息。这些消息通常会加以区分,用一个特性来包装信息。告诉对方这是一个怎样的消息。然后在处理这些消息的时候,对消息进行解析,根据这些消息的特性再进行具体的操作。但是有时候不仅是客户端和服务器之间的消息,还有用户在使用我们的界面的时候,产生的请求,比如说请求登录,请求注
册等等。而这不同的请求也就代表了会有不同的执行方法。
//这个是serverConversation
public void dealMessage(NetMessage message) {
ENetMessage type = message.getType();
String para = message.getParaMessage();
String action = message.getAction();
switch (type) {
case REQUEST_ONLINE: //请求上线
if(server.clientMap.size() > Server.MAX_COUNT) {
send(new NetMessage()
.setType(ENetMessage.FREFUSE_ONLINE)
.setParaMessage("服务器已满,请稍后再试"));
close();
}else {
send(new NetMessage()
.setType(ENetMessage.AGREE_ONLINE));
server.addConversation(para, this);
server.reportMessage("客户端[" + id+ "]上线");
}
break;
case OFF_LINE: //下线
server.reportMessage("客户端[" + id