socket-handle.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const socket_io = require('./socket.io-mp')
  2. const { IM_HOST } = require('../config/config')
  3. let io = ''
  4. export function initSocket(page, options) {
  5. const defaultOpts = {
  6. customerId: '',
  7. agentId: '',
  8. role:'agent',
  9. nickName: '',
  10. roomId:'',
  11. isClient: true
  12. }
  13. io = socket_io(IM_HOST, {
  14. path: '/vr-node',
  15. query: Object.assign(defaultOpts, options)
  16. })
  17. const eventName = {
  18. startPlay: 'answer', // 开始语音
  19. someoneInRoom: 'vr_request', // 有人加入房间
  20. someoneLeaveRoom: 'putup', // 有人离开房间
  21. action: 'action', // 点击操作
  22. }
  23. // 事件监听
  24. io.on(eventName.startPlay, function (data) {
  25. console.log(data, 'startplay')
  26. page.startPlay(data)
  27. })
  28. io.on(eventName.someoneInRoom, function (data) {
  29. if (data.persons.length < 2) {
  30. return
  31. }
  32. let user = data.persons.find(item => item.userId === getApp().globalData.userinfo.user_id)
  33. page.enterAudioRoom(user)
  34. })
  35. io.on(eventName.someoneLeaveRoom, function (data) {
  36. page.someoneLeave(data)
  37. })
  38. io.on(eventName.action, (data) => {
  39. if (data && data.name === 'delegation' && data.role === 'agent') {
  40. page.changeDelegetionStatus()
  41. }
  42. })
  43. return io
  44. }
  45. export function emitSendMsg (target_id) {
  46. let app = getApp()
  47. io.emit('sendMsg', {
  48. user_id: app.globalData.userinfo.user_id,
  49. target_id: target_id
  50. })
  51. }
  52. export function emitInRoom () {
  53. let app = getApp()
  54. io.emit('inRoom', {
  55. user_id: app.globalData.userinfo.user_id,
  56. room_id: app.globalData.room_id
  57. })
  58. }
  59. export function emitLeaveRoom () {
  60. let app = getApp()
  61. io.emit('leaveRoom', {
  62. user_id: app.globalData.userinfo.user_id,
  63. room_id: app.globalData.room_id
  64. })
  65. }
  66. export function disconnect () {
  67. return io.disconnect()
  68. }