一、http post

url: https://room.youngget.com/api/agoraws/init 【测试暂用此url 正式版本会修改】

客户端发送数据:

  1. {
  2. uid:用户id,
  3. roomid:房间id
  4. }

服务端返回数据:

  1. {
  2. code:状态码,
  3. option:{
  4. account:", // 网易IM账号"
  5. appId_ag: "e84e858ce6d94c0babc05781fc3cf52b", // 声网appid当房间SDK是声网时会返回
  6. appKey: "c7349109e484d80c05b0d12ca272a89b", // 网易IM appkey
  7. token: "ba25a5dd1b3dd4ea6f3e92d07792711f", // 网易IM token
  8. token_ag: "声网SDK客户端需要用到的token 当房间SDK是声网时会返回该token"
  9. token_ws: "用于客户端websocket连接建立时 填入头headers['sec-websocket-protocol']中"
  10. url_wss: "wss://room.youngget.com",
  11. },
  12. role:1, //用户角色
  13. room_no:"104", //房号
  14. roomKind:1, //房间类型
  15. teamid:***, //网易IM群id
  16. video_resolution: "720P",视频分辨
  17. self:{用户信息
  18. account_no: "101", // 用户账号
  19. avatar: "https://img.youngget.com/onlinePicture/default-avatar.png"// 头像
  20. id: "lv-u-101"
  21. imid: "lv-u-101" // 网易IM账号
  22. inittime: "-1"
  23. nick_name: "nick_lv_101" // 昵称
  24. role: 1
  25. roomid: "lvroomid004"
  26. sex: "1" // 性别
  27. },
  28. members:[房间内成员数组
  29. {
  30. account_no: "101"
  31. avatar: "https://img.youngget.com/onlinePicture/default-avatar.png"
  32. id: "lv-u-101"
  33. imid: "lv-u-101"
  34. nick_name: "nick_lv_101"
  35. role: "1"
  36. roomid: "lvroomid004"
  37. sex: "1"
  38. }
  39. ],
  40. online:{ 当前连麦
  41. 1:"empty" // 1号麦为空闲
  42. 2: "lv-u-102" // 2号麦为用户 lv-u-102
  43. 3: "empty" // 3号麦为空闲
  44. },
  45. //当前排麦列表queue
  46. queue: ["lv-u-101", "1546671026636", "用户x的id", "用户x进入排麦列表的时间戳"]
  47. }

返回值说明:

code

101, // roomid对应的房间不存在
102, // uid用户无权创建roomid房间
103, // uid用户有权创建roomid房间
104, // uid用户无权加入roomid房间
105, // uid用户有权加入roomid房间

role

1, // 用户在房间内的角色 - 主教练【房主】
2, // 用户在房间内的角色 - 副教练【副房主】
3, // 用户在房间内的角色 - 学员[可上麦]
4, // 用户在房间内的角色 -一般注册用户【非学员】
5, // 用户在房间内的角色 -游客[不可上麦]

二 、WebSocket客户端连接建立

需设置 头 headers[‘sec-websocket-protocol’]的值为第一步返回的 option.token_ws

三 、ws 客户端主动发起的通信命令

//cli->srv->cli

SM: 1, // 上麦[自己]
客户端发送 {c:1,d:{SN:1},i:1}
说明 c:命令常量值,d:客户端请求数据,i:客户端自维护的流水号
d:{SN:1} SN:上几号麦
服务端返回 {c: 1, i: 1, succ: true,tk: “房间SDK是声网时 所需的token”}
说明 c:命令常量值, i:客户端自维护的流水号
succ: 是否成功
SPM: 2, // 上排麦[自己]
客户端发送 {c:2,d:{uid:用户id},i:1}
服务端返回 {c: 2, i: 1, succ: true}
XM: 3, // 下麦[自己]
客户端发送 {c:3,d:{uid:用户id},i:1}
服务端返回 {c: 3, i: 4, succ: true, islm: true, tk: “房间SDK是声网时 所需的token”}
说明 islm: true 表示从 连麦列表中删除 false表示从排麦列表中删除
REMOVE_PM: 4, // 从排麦列表删除 [房主]
客户端发送 {c:4,d:{targetUid:删除目标用户id},i:1}
服务端返回 {c: 4, i: 1, succ: true}
TM: 5, // 踢麦
客户端发送 {c:5,d:{kickedid:踢麦目标用户id,SN:踢麦目标用户所在麦序号},i:1}
服务端返回 {c: 5, i: 1, succ: true}
BM: 6, // 抱麦
客户端发送 {c:6,d:{sm_uid:抱麦目标用户id,SN:抱麦目标麦序号},i:1}
服务端返回 {c: 6, i: 1, succ: true}
ANSWER_BM: 7, // 回复抱麦
客户端发送 {c:7,d:{bmuid:抱麦者id,SN:抱麦目标麦序号,isAgree:是否同意},i:1}
服务端返回 {c: 7, i: 1, succ: true}
四 服务端发送给客户端的通信命令
//srv->cli

BBM: 8, // 被抱麦
客户端收到 {c:8,d:{fromuid:抱麦者id,SN:抱麦目标麦序号}}

BTM: 9, // 被踢麦
客户端收到 {c:9}

MEMBER_ADDED: 10, // 成员列表添加
客户端收到 {c:10,d:{
uid: “lv-u-102”,
account_no: “102”,
avatar: “头像url”,
sex: “1”,
nick_name: “昵称”,
role: 2,
imid: “lv-u-102”
}}
MEMBER_DELETED: 11, // 成员列表删除
客户端收到 {c:11,d:{uid: “lv-u-102”}}

ONLENE_ADDED: 12, // 连麦列表添加
客户端收到 {c:12,d:{uid: “lv-u-102”,SN: 3}}

ONLENE_DELETED: 13, // 连麦列表删除
客户端收到 {c:13,d:{uid: “lv-u-102”,reason: “BM”}} // reason: “BM”当由于抱麦而被下麦时

QUEUE_ADDED: 14, // 排麦列表添加
客户端收到 {c:14,d:{uid: “lv-u-102”,score: “时间戳”}}

QUEUE_DELETED: 15, // 排麦列表删除
客户端收到 {c:15,d:{uid: “lv-u-102”}}

BM_REFUSED: 16, // 抱麦被对方拒绝
客户端收到 {c:16,d:{touid:被抱者id}}

KICKED_OF_BM: 17, // 由于抱麦命令而被踢麦 客户端收到 {c:17,d:{SN:麦序号}}

ROOM_NOTICE: 18, // 房间公告