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. let wsServer = `https://doc.okenx.com:2000/socket.io/?EIO=3&transport=polling&t=1683534247683-4&sid=8b70ac692c16d9410137bc75`;
  68. // // console.info("location.protocol", wsServer);
  69. // //线上环境
  70. // //webSocket 前面加一个前缀xxx_websocket_ 区分后面其他项目的webSocket
  71. // // let wsServer = "wss://域名地址或ip加端口/ nginx配置的 xxx_websocket/" + userId;
  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. }