websocket.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. // import socket from "@/utils/websocket.js"
  2. import config from "./config.js"
  3. import {
  4. getStorageSync
  5. } from "./common.js"
  6. let socket_api = `${config.socketUrl}:2000`
  7. // import io from '@/js_sdk/hyoga-uni-socket_io/uni-socket.io.js';
  8. import io from '@hyoga/uni-socket.io';
  9. import store from '@/store'
  10. import {
  11. decimalNum
  12. } from "./common.js"
  13. const nums = (arr = []) => {
  14. const att = arr.map(el => {
  15. return el[1]
  16. })
  17. const num = Math.max.apply(null, att)
  18. arr.forEach(el => {
  19. let n = (el[1] / num * 100).toFixed(2);
  20. el[2] = n > 100 ? 100 : n;
  21. })
  22. return arr
  23. }
  24. let socket = null
  25. const filtration = (msg) => {
  26. if (store.getters.currencyVal.legal_id == msg.legal_id && store.getters.currencyVal.currency_id ==
  27. msg.currency_id) {
  28. return true
  29. } else {
  30. return false
  31. }
  32. }
  33. // let num = 5,
  34. // aaaInterval = null
  35. // const aaa = () => {
  36. // clearInterval(aaaInterval)
  37. // aaaInterval = setInterval(() => {
  38. // num--;
  39. // if (num === 0) {
  40. // clearInterval(aaaInterval)
  41. // setTimeout(() => {
  42. // num = 5
  43. // aaa()
  44. // }, 2000)
  45. // }
  46. // }, 1000)
  47. // }
  48. // closeSocket();
  49. export const startSocket = (data) => {
  50. console.log('closeSocket 初始化')
  51. closeSocket();
  52. socket = io(socket_api, {
  53. query: {},
  54. transports: ['websocket', 'polling'],
  55. timeout: 5000,
  56. });
  57. socket.on('connect', () => {
  58. socket.on('market_depth', (msg) => {
  59. if (filtration(msg)) {
  60. // console.log('market_depth = ' , msg)
  61. // 收到服务器推送的消息,可以跟进自身业务进行操作
  62. // var buyIn = msg.bids.slice(0, 7);
  63. store.commit('websocket/set_bids', nums(msg.bids))
  64. // var out = msg.asks.slice(0, 7);
  65. store.commit('websocket/set_asks', nums(msg.asks))
  66. }
  67. })
  68. socket.on('daymarket', (msg) => {
  69. // 收到服务器推送的消息,可以跟进自身业务进行操作
  70. if (filtration(msg)) {
  71. store.commit('websocket/set_daymarket', msg)
  72. }
  73. })
  74. socket.emit('login', getStorageSync('userId'));
  75. // console.log("getStorageSync('userId')" , getStorageSync('userId'))
  76. socket.on('lever_trade', (msg) => {
  77. // if (filtration(msg)) {
  78. // console.log('lever_trade 133 = ' , JSON.parse(msg.tradesList))
  79. // const tradesList = JSON.parse(msg.tradesList)
  80. // const obj = Object.assign({} , msg , {tradesList:tradesList})
  81. // store.commit('websocket/set_lever_trade', obj)
  82. // }
  83. const trades_all = JSON.parse(msg.trades_all)
  84. const obj = Object.assign({}, msg, {
  85. tradesList: trades_all
  86. })
  87. store.commit('websocket/set_lever_trade', obj)
  88. })
  89. })
  90. return false
  91. if (socketObj[data.type]) {
  92. socketObj[data.type].disconnect();
  93. socketObj[data.type] = null
  94. };
  95. socketObj[data.type] = io(socket_api, {
  96. query: {},
  97. transports: ['websocket', 'polling'],
  98. timeout: 5000,
  99. });
  100. socketObj[data.type].on(data.type, (msg) => {
  101. if (store.getters.currencyVal.legal_id == msg.legal_id && store.getters.currencyVal.currency_id ==
  102. msg.currency_id) {
  103. if (msg.type == 'market_depth') {
  104. // var buyIn = msg.bids.slice(0, 7);
  105. store.commit('websocket/set_bids', nums(msg.bids))
  106. // var out = msg.asks.slice(0, 7);
  107. store.commit('websocket/set_asks', nums(msg.asks))
  108. }
  109. if (msg.type == 'daymarket') {
  110. // state.daymarket = msg;
  111. store.commit('websocket/set_daymarket', msg)
  112. }
  113. }
  114. });
  115. }
  116. export const closeSocket = () => {
  117. try {
  118. socket && socket.disconnect()
  119. socket = null;
  120. } catch {}
  121. }