websock.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import s from "./s.js"
  2. import config from "./config.js"
  3. import {
  4. axios
  5. } from '@/utils/request.js'
  6. let websock = ''; //webSocket使用
  7. let isConnect = false; //webSocket连接标识 避免重复连接
  8. let reConnectNum = 1; //断开后重新连接的次数 免得后台挂了,前端一直重连
  9. const conceal = () => {
  10. websockList.value = [];
  11. };
  12. const websocketonopen = () => {
  13. // console.log("WebSocket连接成功");
  14. //连接建立后修改标识
  15. isConnect = true;
  16. };
  17. const websocketonerror = () => {
  18. console.log("WebSocket连接发生错误");
  19. //连接断开后修改标识
  20. isConnect = false;
  21. //连接错误 需要重连
  22. reConnect();
  23. };
  24. const websocketonmessage = (e) => {
  25. if (e != null) {
  26. // console.log('websocketclose', e)
  27. let str = JSON.parse(e.data);
  28. // category : "SYS"
  29. // content : "您有一个通知公告,请查阅!"
  30. // createTime : 1670322927873
  31. // createUser : "1543837863788879871"
  32. // deleteFlag : "NOT_DELETE"
  33. // id : "1600076448078106626"
  34. // msgType : 1
  35. // subject : "您有一个通知公告,请查阅!"
  36. websockList.value = JSON.parse(JSON.stringify(str));
  37. }
  38. };
  39. // webSocket连接关闭
  40. const websocketclose = () => {
  41. // console.log("webSocket连接关闭");
  42. isConnect = false;
  43. websock = "";
  44. reConnect();
  45. };
  46. // 尝试重新连接
  47. const reConnect = () => {
  48. // if (reConnectNum > 6) {
  49. // // console.log("重连超过6次不再重连");
  50. // return false;
  51. // }
  52. // // console.log("isConnect", isConnect, $store.getters.userId);
  53. // //如果已经连上就不再重试了
  54. // if (isConnect && !$store.getters.userId) return;
  55. // initWebSocket($store.getters.userId);
  56. // reConnectNum = reConnectNum + 1;
  57. };
  58. const initWebSocket = (userId) => {
  59. console.log('getBaseUrl = ', config.getBaseUrl)
  60. // console.log("进入initWebSocket");
  61. // console.log("系统用户ID:" + userId);
  62. // if (userId != null && userId != "") {
  63. // // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
  64. console.log('a ', )
  65. const t = new Date().getTime()
  66. // const env = import.meta.env.VITE_API_BASEURL.split("://");
  67. // // console.info("location.protocol", wsServer);
  68. // //线上环境
  69. // //webSocket 前面加一个前缀xxx_websocket_ 区分后面其他项目的webSocket
  70. // // let wsServer = "wss://域名地址或ip加端口/ nginx配置的 xxx_websocket/" + userId;
  71. let wsServer = `wss://doc.okenx.com:2000/socket.io/?EIO=3&transport=websocket&sid=d5ce250e2d16d9410233d8a4`;
  72. websock = new WebSocket(wsServer);
  73. websock.onopen = websocketonopen;
  74. websock.onerror = websocketonerror;
  75. websock.onmessage = websocketonmessage;
  76. websock.onclose = websocketclose;
  77. // }
  78. };
  79. export const startWebSocket = (data) => {
  80. initWebSocket();
  81. // var socket_api = 'https://doc.okenx.com:2000'
  82. // var socket = s(socket_api);
  83. // socket.on('market_depth', function(msg) {
  84. // console.log('msg = ', msg)
  85. // if (msg.type == 'market_depth') {
  86. // if (3 == msg.legal_id && 1 == msg.currency_id) {
  87. // //btc 匹配
  88. // // var buyIn = JSON.parse(msg.bids);
  89. // // var out = JSON.parse(msg.asks).reverse();
  90. // var buyIn = msg.bids;
  91. // var out = msg.asks;
  92. // }
  93. // }
  94. // })
  95. // setTimeout(() => {
  96. // // 关闭
  97. // console.log('关闭 = ')
  98. // socket.close()
  99. // }, 3000)
  100. }
  101. export const startAjaxSocket = () => {
  102. // https://doc.okenx.com
  103. // https://doc.okenx.com
  104. const t = new Date().getTime()
  105. axios.post(`:2000`, {
  106. t: t
  107. }).then(res => {
  108. })
  109. }