感谢
最后更新于:2022-04-01 04:08:56
感谢fukun在项目开始阶段的指点,还有allen,wuzhongyang及其他未尽提及的朋友提供过帮助,在此一并感谢。
用户体系集成
最后更新于:2022-04-01 04:08:54
## 集成一个用户
**输入**
Path : http://haoshuo.love:2012/re
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"username":"ECHO", //登录名
"pass":"123" //密码
}
**输出**
{
"uid":4, // 用户uid
"username":"ECHO" // 用户名
}
## 集成一个群组
**输入**
Path : http://haoshuo.love:2012/gre
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test", //appid
"ownerid":2, //群主uid
"gname":"groupname", //群组名称
"uids":[1,2], //群成员id
"token":"zz" //token
}
**输出**
{
"uid":4, //群主uid
"gname":"3个人吗" //群组名称
}
IOS客户端SDK
最后更新于:2022-04-01 04:08:52
这是我能想到的最难过的事。我给你最纯净的服务端API让你自由发挥,你(qi)却(shi)要(wo)我(gao)提(bu)供(ding)一个多余的SDK。
Android客户端SDK
最后更新于:2022-04-01 04:08:49
这是我能想到的最难过的事。我给你最纯净的服务端API让你自由发挥,你(qi)却(shi)要(wo)我(gao)提(bu)供(ding)一个多余的SDK。
服务端API
最后更新于:2022-04-01 04:08:47
### 接口1 登录
**输入**
Path : http://haoshuo.love:2012/login
HTTP Method : POST
Params :haoshuo
haoshuo = {
"appid":"test",
"username":"2", //用户id
"pass":"123" //密码
}
**输出**
{
"uid":1, //用户id
"token":"04fa0cf760226c402c42f73d23869bad" //token
}
### 接口2 单聊
**输入**
Path : http://haoshuo.love:2012/p
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"fromid":1, //发送者uid
"datatype":1, //1单聊,2群里
"toid":1, //接受者uid
"content":"my test 66", //消息内容
"token":"25d9dc7d4ca06048567da02527defc48", //token
"restart":"all" //保留字段,固定传all
}
**输出**
{"type":"ok"}
### 接口3 群聊
**输入**
Path : http://haoshuo.love:2012/gp
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"fromid":1, //发送者uid
"datatype":2, //1单聊,2群里
"toid":1, //群组 id
"content":"my group msg", //消息内容
"token":"1zz", //token
"restart":"all" //保留字段,固定传all
}
**输出**
{"type":"ok"}
### 接口4 消息监听
**输入**
Path : http://haoshuo.love:2012/cget/stream?seq=1&cname=xxxxx&token=xxxxx (http chunk)
Path : http://haoshuo.love:2012/cget/poll?seq=1&cname=xxxxx&token=xxxxx (长连接)
**输出**
{
"type":"data",
//data: 正常的消息.
//noop: 心跳消息.
//429: Error message, too many channels/subscribers.
//401: Error message, token error.
"content":" //消息数据
{\"msgs\":
[
{
\"content\":\"my test 66\", //消息内容
\"fromid\":\"1\", //发送者uid
\"toid\":\"2\", //接受者uid 或者群组id
\"datatype\":1, //1单聊,2群聊
\"msgid\":\"1\", //消息id
},
{
\"content\":\"my test 66\",//消息内容
\"fromid\":\"1\", //发送者uid
\"toid\":\"2\", //接受者uid 或者群组id
\"datatype\":1, //1单聊,2群聊
\"msgid\":\"2\", //消息id
}
],
\"endid\":\"301\", //最近消息id即最大消息id
\"toid\":2 //接受者uid 或者群组id
}"
}
### 接口5 新消息拉取
**输入**
Path : http://haoshuo.love:2012/pull
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"uid":1, //用户id
"token":"36296ee15676aa5805d428692140bc25" //token
}
**输出**
{
"msgs":
[
{
"fromid":"1", //发送者uid
"datatype":1, //1单聊,2群里
"content":"my test 66", //消息内容
"msgid":"230", //消息id
"toid":"1" //接受者uid 或者群组id
},
{
"fromid":"1",
"datatype":1,
"content":"my test 66",
"msgid":"231",
"toid":"1"},
],
"endid":"240",
"uid":1
}
### 接口6 消息接收确认(ack)
**输入**
Path : http://haoshuo.love:2012/ack
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"uid":2, //用户id
"endid":243, //最近消息id即最大消息id
"token":"1ddc9e8e3815735f453acc880fbf69a0"
}
**输出**
{"type":"ok"}
### 接口7 退出登录接口
**输入**
Path : http://haoshuo.love:2012/logout
HTTP Method : POST
Params :haoshuo
haoshuo =
{
"appid":"test",
"uid":1, //用户id
"token":"39ce62ea55f98c1d33d5bdb00fdb698f" //token
}
**输出**
{
"uid":1, //用户id
"msg":"ok"
}
快速开始一个IM
最后更新于:2022-04-01 04:08:45
**快速开始一个IM**
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-14_561dc6a5616d8.png)
好说的性能
最后更新于:2022-04-01 04:08:43
**好说的性能**
好说的推送服务采用c++开发,而用户在线状态和IM业务部分采用nginx+lua+redis完成,能提供高性能、大并发,同步非阻塞的请求响应。让每条消息不丢、不重、有序、实时是好说的极致追求。
推送服务内存占用
| Connections | VIRT | RES |
| -- | -- | -- |
| 0 | 39m | 24m |
| 100,000 | 302m | 288m |
| 200,000 | 579m | 565m |
| 500,000 | 1441m | 1427m |
| 1,000,000 | 2734m | 2720m |
好说的架构
最后更新于:2022-04-01 04:08:40
**好说架构图示**
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-12_561b26b4450c0.png)
关于好说
最后更新于:2022-04-01 04:08:38
好说haoshuo是由奇虎360的ECHO同学提供的IM即时通讯服务。好说haoshuo将基于移动互联网的即时通讯能力,单聊、群聊等,通过API方式提供给开发者或者企业。让移动开发者摆脱繁重的移动IM通讯服务端开发,极大限度地缩短产品开发周期,让App快速拥有移动IM能力。