GroupUtility.pas 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. unit GroupUtility;
  2. interface
  3. uses
  4. Classes, SysUtils;
  5. const
  6. // 创建
  7. // q {id:'', group:{name:'', type:0, creator:'', intro:'', notice:'', members: []}}
  8. // r(send) {id:'', ret:0, group: {}} // all
  9. // f(send) {id:'', ret:0, data: {}}
  10. // b(members) {id:'', group:{}}
  11. GROUP_CREATE_REQUEST: string = 'g.create.q';
  12. GROUP_CREATE_RESPONSE: string = 'g.create.r';
  13. GROUP_CREATE_FAIL: string = 'g.create.f';
  14. GROUP_CREATE_BROADCAST: string = 'g.create.b';
  15. GROUP_CREATE_JSON:string = '{"id":"", "group":{"name":"", "type":"", "creator":"", "intro":"", "notice":"", "members":[]}}';
  16. // 更新
  17. // q {id:'', group:{id:'', intro:'', notice:'', members: [], managers: []}};
  18. // r(send) {id:'', ret:0, group: {}} // changes
  19. // f(send) {id:'', ret:0, data: {}}
  20. // b(members) {id:'', group:{}} // changes
  21. GROUP_UPDATE_REQUEST: string = 'g.update.q';
  22. GROUP_UPDATE_RESPONSE: string = 'g.update.r';
  23. GROUP_UPDATE_FAIL: string = 'g.update.f';
  24. GROUP_UPDATE_BROADCAST: string = 'g.update.b';
  25. // 删除
  26. // q {id:'', group:{id:[id...]}}
  27. // r(send) {id:'', ret:0, group:{id:[id...]}} 删除成功的编号
  28. // f(send) {id:'', ret:0, data: {}}
  29. // b(members) {id:'', group:{id:[id...]}}
  30. GROUP_DEL_REQUEST: string = 'g.del.q';
  31. GROUP_DEL_RESPONSE: string = 'g.del.r';
  32. GROUP_DEL_FAIL: string = 'g.del.f';
  33. GROUP_DEL_BROADCAST: string = 'g.del.b';
  34. // 根据 ID 查询
  35. // q {id:'', group:{id: 'id' /* or Array */}};
  36. // r(send) {id:'', ret:0, groups:[group...]};
  37. // f(send) {id:'', ret:0, data: {}}
  38. GROUP_GET_REQUEST: string = 'g.get.q';
  39. GROUP_GET_RESPONSE: string = 'g.get.r';
  40. GROUP_GET_FAIL: string = 'g.get.f';
  41. // 搜索
  42. // q {id:'', group:{id:'', name:'', intro:'', notice:'', members: [], managers: []}, skip:0, limit: 0};
  43. // r(send) {id:'', ret:0, groups:[group...], skip:0, limit: 0}
  44. // f(send) {id:'', ret:0, data: {}}
  45. GROUP_QUERY_REQUEST: string = 'g.query.q';
  46. GROUP_QUERY_RESPONSE: string = 'g.query.r';
  47. GROUP_QUERY_FAIL: string = 'g.query.f';
  48. // 添加
  49. // q {id:'', group:{id:''}};
  50. // r(send) {id:'', ret:0, group:{id:'', members: [id...], managers: [id...]}}
  51. // f(send) {id:'', ret:0, data: {}}
  52. MEMBER_QUERY_REQUEST: string = 'u.query.q';
  53. MEMBER_QUERY_RESPONSE: string = 'u.query.r';
  54. MEMBER_QUERY_FAIL: string = 'u.query.f';
  55. // 添加
  56. // q {id:'', group:{id:'', members: [id...], managers: [id...]}};
  57. // r(send) {id:'', ret:0, group:{id:'', members: [id...], managers: [id...]}}
  58. // f(send) {id:'', ret:1}
  59. // b {id:'', group:{id:'', members: [id...], managers: [id...]}}
  60. MEMBER_ADD_REQUEST: string = 'u.add.q';
  61. MEMBER_ADD_RESPONSE: string = 'u.add.r';
  62. MEMBER_ADD_FAIL: string = 'u.add.f';
  63. MEMBER_ADD_BROADCAST: string = 'u.add.b';
  64. // MEMBER_ADD_P: string = 'u.add.p';
  65. // 删除
  66. // q {id:'', group:{id:'', members: [id...], managers: [id...]}};
  67. // r(send) {id:'', ret:0, group:{id:'', members: [id...], managers: [id...]}}
  68. // f(send) {id:'', ret:0, data: {}}
  69. // b(members) {id:'', group:{id:'', members: [id...], managers: [id...]}}
  70. MEMBER_DEL_REQUEST: string = 'u.del.q';
  71. MEMBER_DEL_RESPONSE: string = 'u.del.r';
  72. MEMBER_DEL_FAIL: string = 'u.del.f';
  73. MEMBER_DEL_BROADCAST: string = 'u.del.b';
  74. // 更新
  75. // q {id:'', group:{id:'', members: [{id:'', alias:''}]}};
  76. // r(send) {id:'', ret:0, group:{id:'', members: [{id:'', alias:''}]}};
  77. // f(send) {id:'', ret:0, data: {}}
  78. // b(members) {id:'', group:{id:'', members: [{id:'', alias:''}]}};
  79. MEMBER_UPDATE_REQUEST: string = 'u.update.q';
  80. MEMBER_UPDATE_RESPONSE: string = 'u.update.r';
  81. MEMBER_UPDATE_FAIL: string = 'u.update.f';
  82. MEMBER_UPDATE_BROADCAST: string = 'u.update.b';
  83. // 申请
  84. // q {id:'', group:{id:'', apply:{uid:'', msg:''}}}
  85. // r(send) {id:''}
  86. // f(send) {id:'', ret:1}
  87. // 400 请求错误(一般缺少 group id)
  88. // 304 用户已存在
  89. // 405 群禁止用户加入
  90. // group type:
  91. // 0, 调用 u.add
  92. // 1, 申请加入
  93. // 4, 返回 405
  94. // p(managers) {id:'', group:{id:'', apply:{id:'', uid: '', msg:''}}}, 管理员接收到 apply.p, 发起 replay.q
  95. MEMBER_APPLY_REQUEST: string = 'u.apply.q';
  96. MEMBER_APPLY_RESPONSE: string = 'u.apply.r';
  97. MEMBER_APPLY_FAIL: string = 'u.apply.f';
  98. MEMBER_APPLY_P2P: string = 'u.apply.p';
  99. // 审核
  100. // q {id:'', group:{id:'', apply:{id:'', uid:'', msg:''}, reply:{id:'', uid:'', ret:0, msg}}}
  101. // ret:
  102. // 1 允许
  103. // 0 拒接
  104. // r(send) {id:'', _ret:0, group:{id:'', apply:{id:'', msg:''}, reply:{id:'', uid:'', ret:0, msg}}}
  105. // f(send) {id:'', ret:1}
  106. // p(apply & managers) {id:'', group:{id:'', apply:{id:'', uid:'', msg:''}, reply:{id:'', uid:'', ret:0, msg}}}
  107. MEMBER_REPLY_REQUEST: string = 'u.reply.q';
  108. MEMBER_REPLY_RESPONSE: string = 'u.reply.r';
  109. MEMBER_REPLY_FAIL: string = 'u.reply.f';
  110. MEMBER_REPLY_P2P: string = 'u.reply.p';
  111. // 邀请加入
  112. // q "id":"","group":{"id":"","members":[], "operator":{"id":"","msg":""}}}
  113. // r
  114. // f
  115. // p()
  116. //invite: 'u.invite',
  117. INVITE_REQUEST: string = 'u.invite.q';
  118. // 会话
  119. // q {id:'', group:{id:[id...]}, message:{message}}
  120. // r(send) {id:'', ret:0, group:{id: [id...], message:{message}}}
  121. // b(members) {id:'', group:{id:[id...]}, message:{message}}
  122. MESSAGE_SAY_REQUEST: string = 'm.say.q';
  123. MESSAGE_SAY_RESPONSE: string = 'm.say.r';
  124. MEMBER_SAY_BROADCAST: string = 'm.say.b';
  125. // 会话回执
  126. // q {id:'', message:{id:[id...]}}
  127. // r(send) {id:'', ret:0}
  128. // mark: 'm.mk'
  129. // 消息回执
  130. // q {id:'', event:{id:[id...]}}
  131. // r(send) {id:'', ret:0}
  132. // mark: 'e.mk'
  133. // 回执
  134. // q {id:'', message:{id:[id...]}, event:{id:[id...]}}
  135. // r(send) {id:'', ret:0}
  136. MARK_MK_REQUEST: string = 'mi.mk.q';
  137. MARK_MK_RESPONSE: string = 'mi.mk.r';
  138. // 用户群组
  139. // r(send) {id:'', groups:[]}
  140. MEMBER_GS_REQUEST: string = 'u.gs.q';
  141. MEMBER_GS_RESPONSE: string = 'u.gs.r';
  142. SHAKEHANDS_STEP1: string = 'http://%s:%d/socket.io/?uid=%s&EIO=3&transport=polling&t=%d-0';
  143. SHAKEHANDS_STEP2: string = '%s:%d/socket.io/?uid=%s&EIO=3&transport=polling&t=%d-0&sid=%s';
  144. WEBSOCKET_URL: string = '/socket.io/?uid=%s&EIO=3&transport=websocket&sid=%s';
  145. implementation
  146. end.