Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/h1bomb/chat-box
InstantMessaging
https://github.com/h1bomb/chat-box
Last synced: 5 days ago
JSON representation
InstantMessaging
- Host: GitHub
- URL: https://github.com/h1bomb/chat-box
- Owner: h1bomb
- Created: 2011-06-25T14:33:59.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2011-06-28T00:51:29.000Z (over 13 years ago)
- Last Synced: 2023-03-29T01:12:48.990Z (over 1 year ago)
- Language: JavaScript
- Homepage: hbomb.no.de
- Size: 198 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README
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)