websocket.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // import socket from "@/utils/websocket.js"
  2. let socket_api = 'https://doc.okenx.com:2000'
  3. // import io from '@/js_sdk/hyoga-uni-socket_io/uni-socket.io.js';
  4. import io from '@hyoga/uni-socket.io';
  5. import store from '@/store'
  6. import {
  7. decimalNum
  8. } from "./common.js"
  9. const socketObj = {}
  10. const nums = (arr = []) => {
  11. const att = arr.map(el => {
  12. return el[1]
  13. })
  14. const num = Math.max.apply(null, att)
  15. arr.forEach(el => {
  16. let n = (el[1] / num * 100).toFixed(2);
  17. el[2] = n > 100 ? 100 : n;
  18. })
  19. return arr
  20. }
  21. export const startSocket = (data) => {
  22. // return false
  23. if (socketObj[data.type]) {
  24. socketObj[data.type].disconnect();
  25. socketObj[data.type] = null
  26. };
  27. socketObj[data.type] = io(socket_api, {
  28. query: {},
  29. transports: ['websocket', 'polling'],
  30. timeout: 5000,
  31. });
  32. socketObj[data.type].on(data.type, (msg) => {
  33. // console.log('socket = ' , socketObj , msg)
  34. // if(!socket){
  35. // try{
  36. // socket.disconnect()
  37. // socket.closeSocket()
  38. // }catch{}
  39. // socket = null;
  40. // return false
  41. // }
  42. if (store.getters.currencyVal.legal_id == msg.legal_id && store.getters.currencyVal.currency_id ==
  43. msg.currency_id) {
  44. if (msg.type == 'market_depth') {
  45. // var buyIn = msg.bids.slice(0, 7);
  46. store.commit('websocket/set_bids', nums(msg.bids))
  47. // var out = msg.asks.slice(0, 7);
  48. store.commit('websocket/set_asks', nums(msg.asks))
  49. }
  50. if (msg.type == 'daymarket') {
  51. // state.daymarket = msg;
  52. store.commit('websocket/set_daymarket', msg)
  53. }
  54. }
  55. });
  56. }
  57. export const closeSocket = () => {
  58. for (let key in socketObj) {
  59. if (key) {
  60. socketObj[key].disconnect()
  61. socketObj[key] = null
  62. }
  63. };
  64. }