سلام.من از 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 کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟