需求分析
- 用户登录
- 拉取在线用户列表
- 无异常退出(服务端、客户端)
- 私聊
- 群聊
- 发文件
- 服务器推送新闻
通信系统示意图
客户端和服务端共有的类:Message、User
User 类:
package com.qqcommon;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String userId;
private String passwd;
public User() {
}
public User(String userId, String passwd) {
this.userId = userId;
this.passwd = passwd;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
Message 类:
package com.qqcommon;
import java.io.Serializable;
public class Message implements Serializable {
private static final long serialVersionUID = 1L;
private String sender;
private String getter;
private String content;
private String sendTime;
private String mesType;
public Message() {
}
public Message(String sender, String getter, String content, String sendTime, String mesType) {
this.sender = sender;
this.getter = getter;
this.content = content;
this.sendTime = sendTime;
this.mesType = mesType;
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getGetter() {
return getter;
}
public void setGetter(String getter) {
this.getter = getter;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getSendTime() {
return sendTime;
}
public void setSendTime(String sendTime) {
this.sendTime = sendTime;
}
public String getMesType() {
return mesType;
}
public void setMesType(String mesType) {
this.mesType = mesType;
}
}
MessageType 接口:
package com.qqcommon;
public interface MessageType {
String MESSAGE_LOGIN_SUCCEED = "1";
String MESSAGE_LOGIN_FAIL = "2";
}