import { PacificaWebSocketAdapter } from './src/exchanges/pacifica/PacificaWebSocketAdapter.js' import { logger } from './src/utils/logger.js' /** * 测试新的WebSocket订阅模式 * 验证实时数据流功能 */ async function testWebSocketSubscriptions() { console.log('🚀 开始测试WebSocket订阅模式...\n') const testAccount = process.env.PACIFICA_ACCOUNT_1 const testPrivateKey = process.env.PACIFICA_PRIVATE_KEY_1 if (!testAccount || !testPrivateKey) { console.log('⚠️ 环境变量未配置,跳过测试') return } console.log(`📊 测试账户: ${testAccount.substring(0, 8)}...`) console.log(`🔑 私钥: ${testPrivateKey.substring(0, 8)}...`) try { // 创建WebSocket适配器 const wsAdapter = new PacificaWebSocketAdapter( 'wss://ws.pacifica.fi/ws', testAccount, testPrivateKey ) // 设置事件监听器 wsAdapter.on('prices', (data: any) => { console.log('💰 收到价格数据:', Object.keys(data).slice(0, 3), '...') }) wsAdapter.on('balance', (data: any) => { console.log('💳 收到账户余额数据:', data) }) wsAdapter.on('positions', (data: any) => { console.log('📊 收到仓位数据:', data) }) wsAdapter.on('orderbook', (data: any) => { console.log('📈 收到订单簿数据:', data.symbol, `${data.bids?.length || 0}买单, ${data.asks?.length || 0}卖单`) }) // 初始化连接 console.log('\n📡 初始化WebSocket连接...') await wsAdapter.initialize() console.log('✅ WebSocket连接已建立') // 测试价格订阅 console.log('\n💰 启动价格数据订阅...') const pricesResult = await wsAdapter.getPrices(['BTC', 'ETH']) console.log('价格订阅结果:', pricesResult.success ? '✅ 成功' : '❌ 失败', pricesResult.data?.message) // 测试订单簿订阅 console.log('\n📈 启动BTC订单簿订阅...') const orderbookResult = await wsAdapter.getOrderBook('BTC') console.log('订单簿订阅结果:', orderbookResult.success ? '✅ 成功' : '❌ 失败') // 测试账户余额订阅 console.log('\n💳 启动账户余额订阅...') const balanceResult = await wsAdapter.getBalances(testAccount) console.log('余额订阅结果:', balanceResult.success ? '✅ 成功' : '❌ 失败', balanceResult.data?.message) // 测试账户仓位订阅 console.log('\n📊 启动账户仓位订阅...') const positionsResult = await wsAdapter.getPositions(testAccount) console.log('仓位订阅结果:', positionsResult.success ? '✅ 成功' : '❌ 失败', positionsResult.data?.message) // 等待接收数据 console.log('\n⏰ 等待15秒接收实时数据...') await new Promise(resolve => setTimeout(resolve, 15000)) console.log('\n🔍 WebSocket连接状态检查:') console.log(` 连接状态: ${wsAdapter.isConnected() ? '✅ 已连接' : '❌ 断开'}`) // 清理资源 console.log('\n🧹 清理资源...') await wsAdapter.close() console.log('✅ 资源清理完成') } catch (error: any) { console.error('❌ 测试过程中发生错误:', error.message) } console.log('\n✅ WebSocket订阅测试完成!') } // 运行测试 if (import.meta.url === `file://${process.argv[1]}`) { testWebSocketSubscriptions().catch(error => { console.error('🚨 测试失败:', error) process.exit(1) }) } export { testWebSocketSubscriptions }