Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/h1bomb/chat-box

InstantMessaging
https://github.com/h1bomb/chat-box

Last synced: 5 days ago
JSON representation

InstantMessaging

Awesome Lists containing this project

README

        

2 用户状态维护
1 用户登入
2 用户登出
3 用户会话超时登出
3 用户列表维护
1 用户的联系人列表保存
2 用户的联系人列表展示
3 用户的联系人列表修改(增,删)
4 用户消息分发
1 轮询过期时间
2 分发到单个人
3 分发到多人
5 离线发送(服务端缓存记录)
5 用户消息维护
1 消息记录保存(本地)

轮询
数据 -- 消息队列
[{
to:0表示全部(聊天室)
from:来自的ID
name:发送者昵称
info:消息内容
type:消息类型(msg消息,join上线,leave离线)
time:发送时间
}]
-- 会话列队
[{
id:在线的ID
name:昵称
time:时间戳
}]
规则 --30s 无消息 立即返回空
-- 返回消息时,更新会话时间戳
-- 如果到达的ID不在线(不在会话列表),或发送不成功,保存到消息列表
-- 如果,会话时间戳超过60s,移除该会话,发送该用户离线的信息
获取联系人列表
从数据库中读取联系人
根据会话列队(判断是否在线),附上状态
登录
在会话列队添加ID和时间戳
发出上线的信息
获取联系人列表
获取未读信息(数据库中删除未读信息)
登出
在会话列队里删除ID和时间戳
发出离线的信息
发送信息
往列队里添加消息

频道---
若是发起会话,可以使用频道的概念,你所发的信息在频道内广播
-------------------------------
连接器
显示当前链接状态,并可以手动重新链接。

关闭登出
关闭浏览器断开链接,发送离线消息

本地保存信息
本地保存聊天记录,可以通过联系人查看

多人会话的支持
-------------------------------
测试覆盖
单元测试
-------------------------------
新需求
---------------------
1.添加与陌生人聊天
2.通过其他方式登录(facebook,twitter,开心,人人,weibo)