socket-handle.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. data.persons = data.persons.filter(item => item.userId !== getApp().globalData.userinfo.user_id)
  29. page.createLivePull(data)
  30. })
  31. io.on(eventName.someoneLeaveRoom, function (data) {
  32. page.someoneLeave(data)
  33. })
  34. io.on(eventName.getUserSig, sig => {
  35. console.log(sig, 'sig')
  36. page.enterAudioRoom(sig)
  37. })
  38. return io
  39. }
  40. export function emitSendMsg (target_id) {
  41. let app = getApp()
  42. io.emit('sendMsg', {
  43. user_id: app.globalData.userinfo.user_id,
  44. target_id: target_id
  45. })
  46. }
  47. export function emitInRoom () {
  48. let app = getApp()
  49. io.emit('inRoom', {
  50. user_id: app.globalData.userinfo.user_id,
  51. room_id: app.globalData.room_id
  52. })
  53. }
  54. export function emitLeaveRoom () {
  55. let app = getApp()
  56. io.emit('leaveRoom', {
  57. user_id: app.globalData.userinfo.user_id,
  58. room_id: app.globalData.room_id
  59. })
  60. }
  61. export function disconnect () {
  62. return io.disconnect()
  63. }