socket-handle.js 1.5 KB

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