socket-handle.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. getUserSig: 'getUserSig'
  22. }
  23. // 事件监听
  24. io.on(eventName.startPlay, function (data) {
  25. page.startPlay(data)
  26. })
  27. io.on(eventName.someoneInRoom, function (data) {
  28. if (data.persons.length < 2) {
  29. return
  30. }
  31. let user = data.persons.find(item => item.userId === getApp().globalData.userinfo.user_id)
  32. page.enterAudioRoom(user)
  33. })
  34. io.on(eventName.someoneLeaveRoom, function (data) {
  35. page.someoneLeave(data)
  36. })
  37. return io
  38. }
  39. export function emitSendMsg (target_id) {
  40. let app = getApp()
  41. io.emit('sendMsg', {
  42. user_id: app.globalData.userinfo.user_id,
  43. target_id: target_id
  44. })
  45. }
  46. export function emitInRoom () {
  47. let app = getApp()
  48. io.emit('inRoom', {
  49. user_id: app.globalData.userinfo.user_id,
  50. room_id: app.globalData.room_id
  51. })
  52. }
  53. export function emitLeaveRoom () {
  54. let app = getApp()
  55. io.emit('leaveRoom', {
  56. user_id: app.globalData.userinfo.user_id,
  57. room_id: app.globalData.room_id
  58. })
  59. }
  60. export function disconnect () {
  61. return io.disconnect()
  62. }