Majid Goudarzi
6 ماه پیش توسط Majid Goudarzi مطرح شد
0 پاسخ

طریقه استفاده از کتابخانه zlib در pnpm

سلام.من از vue3 استفاده میکنم.
به یه مشکل برخورد کردم و chatgpt هم نتونست راه حلی بهم بده:
این فانکشن منه:

function createSocketPriceBingxFutures(coin) {
  const path = "wss://open-api-swap.bingx.com/swap-market"
  const CHANNEL = { "id": "e745cd6d-d0f6-4a70-8d5a-043e4c741b40", "reqType": "sub", "dataType": "BTC-USDT@depth5@500ms" }

  let socket = null
  let receivedMessage = ""

  function onOpen() {
    console.log("WebSocket connected")
    socket.send(JSON.stringify(CHANNEL))
  }

  function onError(error) {
    console.log("WebSocket error:", error)
  }

  function onMessage(event) {
    const compressedData = event.data

    zlib.gunzip(compressedData, (err, decompressedData) => {
      if (err) {
        console.error('Error decompressing data:', err)

        return
      }

      const decodedMsg = decompressedData.toString()

      console.log(decodedMsg)

      if (decodedMsg === 'Ping') {
        socket.send('Pong')
        console.log('Pong')
      }

      receivedMessage = decodedMsg
    })
  }

  function initWebSocket() {
    socket = new WebSocket(path)
    socket.onopen = onOpen
    socket.onmessage = onMessage
    socket.onerror = onError
  }

  initWebSocket()
}

اما نتیجه در مرورگر این اروره:

Uncaught Error: Module "node:zlib" has been externalized for browser compatibility. Cannot access "node:zlib.gunzip" in client code. See <https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility> for more details.  
at Object.get (**vite-browser-external:node:zlib:3:11)  
at WebSocket.onMessage (CrmSalesByCountries.vue:262:10)  
get @** vite-browser-external:node:zlib:3  
onMessage @ CrmSalesByCountries.vue:262

از pako هم استفاده کردم.اما فایده ای نداشت.چون این دیتا فقط با zlib.gunzip قابل خواندنه.در nodejs سایت مرجع نیز به zlib اشاره شده:

<https://bingx-api.github.io/docs/#/en-us/swapV2/socket/market.html#Subscribe%20Market%20Depth%20Data>

ثبت پرسش جدید

به همدیگه کمک کنیم

به Majid Goudarzi کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام