聊天软件后端设计文档
表的设计
Name |
DataType |
描述 |
id |
INT(11) |
主键 |
email |
chat(20) |
Not null |
username |
char(20) |
Not null |
password |
char(20) |
Not null |
headerimg |
varchar(255) |
设置默认值 |
socketid |
varchar(255) |
允许为空 |
isonline |
int(1) |
0 or 1 |
chattime |
BIGINT(255) |
允许为空 |
Name |
DataType |
描述 |
userid |
INT(11) |
|
friendid |
INT(11) |
|
state |
char(20) |
删除 or 未通过 or 是好友 |
addtime |
BIGINT(255) |
成为好友时间 |
Name |
DataType |
描述 |
id |
INT(11) |
主键 |
roomname |
char(20) |
not null |
roomimg |
char(20) |
设置默认 |
Name |
DataType |
描述 |
userid |
INT(11) |
外键 与user表中的id |
roomid |
INT(11) |
外键 与room表中的id |
readtime |
BIGINT(255) |
接收房间信息时间 |
state |
char(20) |
退群 or 待通过 or 加入群 |
addtime |
BIGINT(255) |
加群时间 |
Name |
DataType |
描述 |
sendid |
INT(11) |
|
sendimg |
varchar(255) |
|
toid |
INT(11) |
|
toimg |
varchar(255) |
|
content |
varchar(255) |
|
chattime |
BIGINT(255) |
|
readtime |
BIGINT(255) |
|
Name |
DataType |
描述 |
sendid |
INT(11) |
|
sendimg |
varchar(255) |
|
toroomid |
INT(11) |
|
toroomimg |
varchar(255) |
|
content |
varchar(255) |
|
chattime |
BIGINT(255) |
|
功能
1.登录
socket.on('login',async function(data){
//data: 两个字段(email,password)
}
2.注册
3.获取用户列表
socket.on('user',function(data){
//返回用户列表
socket.emit('user',查询的结果)
})
获取群列表
socket.on('room',function(data){
//返回房间列表
socket.emit('room',查询的结果)
})
断开事件
socket.on('disconnect',function(){
修改数据库socketid isonline
})
发送个人信息
socket.on('senduserMsg',function(data){
})
- 判断toid 是否在线
- isonline -- true
直接发送消息
- 保存消息到userchat表中
发送群消息
- 根据toroomid 查找userid
- isonline -- true
直接发送消息
- 保存消息到roomchat表中
看个人消息后,修改消息状态
socket.on('readMsg',data()=>{
})
看完群消息,修改readtime
socket.on('readRoomMsg',data(){
})