handWs.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import io from 'socket.io-client';
  2. const address: any = import.meta.env.VITE_APP_BASE_API;
  3. const token: any = localStorage.getItem('token');
  4. const deviceid: any = localStorage.getItem('deviceid');
  5. let socketHand: any = {}; //ws实例对象
  6. let testConnect: any = {}; //接入成功
  7. socketHand = io(address + '/', {
  8. transports: ['websocket', 'polling'],
  9. query: {
  10. Authorization: token
  11. }
  12. });
  13. export const handWs = (callback: any) => {
  14. callback(testConnect);
  15. socketHand.on('connect', (e: any) => {
  16. callback(e);
  17. });
  18. socketHand.on('my_response', (e: any) => {
  19. testConnect = e;
  20. callback(e);
  21. });
  22. socketHand.on('handcontroller_ack', (e: any) => {
  23. callback(e);
  24. });
  25. socketHand.on('handcontroller_result', (e: any) => {
  26. callback(e);
  27. });
  28. socketHand.on('device_login_result', (e: any) => {
  29. callback(e);
  30. });
  31. socketHand.on('fe_device_init_result', (e: any) => {
  32. callback(e);
  33. });
  34. socketHand.on('disconnect', (e: any) => {
  35. callback(e);
  36. });
  37. };
  38. export const sendMessage = (type: string, data: any, callback?: () => void) => {
  39. if (socketHand.connected) {
  40. callback = callback || function () {};
  41. socketHand.emit(type, data, callback);
  42. }
  43. };
  44. /**
  45. * 开始连接手势
  46. */
  47. export const startHand = (data?: any, callback?: any) => {
  48. sendMessage(
  49. 'handcontroller',
  50. {
  51. hctrl_name: `handcontroller_${data}`,
  52. cmd: 'open_handcontroller'
  53. },
  54. () => {}
  55. );
  56. };
  57. /**
  58. * 关闭连接手势
  59. */
  60. export const closeHand = (data?: any, callback?: any) => {
  61. sendMessage(
  62. 'handcontroller',
  63. {
  64. hctrl_name: `handcontroller_${data}`,
  65. cmd: 'terminate_handcontroller'
  66. },
  67. () => {}
  68. );
  69. };
  70. /**
  71. * 开始连接登录
  72. */
  73. export const startLogin = (data?: any, callback?: any) => {
  74. sendMessage(
  75. 'fe_get_qrlogin',
  76. {
  77. deviceid: deviceid ? deviceid : ''
  78. },
  79. () => {}
  80. );
  81. };
  82. /**
  83. * 开始连接设备信息
  84. */
  85. export const startDevice = (data?: any, callback?: any) => {
  86. sendMessage(
  87. 'fe_device_init',
  88. {
  89. data: data
  90. },
  91. () => {}
  92. );
  93. };