代码拉取完成,页面将自动刷新
语言:Golang
执行并发测试:go run ./test/ws.client.go; 建议linux下进行并发测试,默认并发10000个客户端连接websocket并发送认证消息,可手动修改并发客户端数量。 测试环境: i5-1035G4,WIN10系统 测试结果: 3万连接广播消息耗时平均0.8s,占用内存1.2G,测试路由:/ws/sendToAll 仅供参考,请自行部署测试。
登录:/api/v1/login
参数:username string
参数:password string
注册:/api/v1/register
参数:username string
参数:password string
登录/注册成功后会返回token,其他接口和websocket授权都需要带上token;api 接口在header添加 Login-Token 字段,websocket在连接后发送一个token认证信息进行认证,15秒之内没有认证成功会强制断开连接。
连接地址:ws://ip:port/ws(例如ws://127.0.0.1:8080/ws
)
登录成功后进行连接认证:
{
"Cmd": "指令",
"FromId": "来源id",
"ToId": "接收id",
"Ope": "消息通道",
"Type": "消息类型",
"Body": "消息内容"
}
字段说明:
Cmd:指令:
CmdFail 2 通用失败
CmdSign 3 登录
CmdSignSuccess 4 登录成功
CmdReceiveFriendMessage 6 收到好友消息
CmdWithdrawFriendMessage 7 撤回好友消息
CmdReceiveFriendAdd 8 收到好友添加请求
CmdReceiveFriendAddResult 9 收到好友请求结果
CmdReceiveGroupMessage 10 收到群消息
CmdWithdrawGroupMessage 11 撤回群消息
CmdReceiveGroupJoin 12 收到加入群组请求
CmdReceiveGroupJoinResult 13 收到加入群组结果
CmdReceiveGroupShot 14 收到被踢出群组通知
FromId:消息发送方id
ToId:消息接收方id,ope=0时为用户id,ope=1是为群组id
Ope:消息通道,OpeFriend 0好友消息,OpeGroup 1群消息, OpeSystem 2系统消息
Type:消息类型,
TypeText 0 文本消息,
TypePicture 1 图片,
TypeVoice 2 语音,
TypeVideo 3 视频,
TypeGeo 4 地理位置信息,
TypeFile 6 文件,
TypePrompt10 提示消息
Body:消息内容,登录认证时填用户Token
{
"Cmd": 3,
"FromId": 0,
"ToId": 0,
"Ope": 0,
"Type": 0,
"Body": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdCI6MTYxOTE0Mzg0OSwiaWQiOjV9.KQ7dOv6bE_fP5NpMehziesFMsZXDAdVrbYBHyZROw40"
}
{
"Cmd": 4,
"FromId": 0,
"ToId": 0,
"Ope": 0,
"Type": 0,
"Body": "认证成功"
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。