| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import { PacificaWebSocketClient } from './src/exchanges/pacifica/PacificaWebSocketClient.js'
- import { PacificaWebSocketAdapter } from './src/exchanges/pacifica/PacificaWebSocketAdapter.js'
- import { logger } from './src/utils/logger.js'
- /**
- * 测试Pacifica WebSocket订阅功能
- * 专门测试account_info和account_positions订阅
- */
- async function testWebSocketSubscriptions() {
- console.log('🚀 开始Pacifica WebSocket订阅测试...\n')
- const adapter = new PacificaWebSocketAdapter('wss://ws.pacifica.fi/ws')
- const testAccount = process.env.PACIFICA_ACCOUNT_1 || '3v2fE8y6uPVu5pmNCpmygpGNgdP3kGL3SMoVa86uvLLu'
- try {
- console.log('📡 初始化WebSocket适配器...')
- await adapter.initialize()
- console.log('✅ 适配器初始化成功!')
- console.log(`🔗 连接状态: ${adapter.isConnected()}`)
- // 测试1: 账户余额订阅
- console.log('\n💰 测试账户余额订阅...')
- try {
- const balanceResult = await adapter.getBalances(testAccount)
- if (balanceResult.success) {
- console.log('✅ 账户余额订阅成功!')
- console.log('📊 余额数据:', {
- balance: balanceResult.data?.balance,
- available: balanceResult.data?.available,
- equity: balanceResult.data?.equity,
- marginUsed: balanceResult.data?.marginUsed,
- })
- } else {
- console.log('❌ 账户余额订阅失败:', balanceResult.error)
- }
- } catch (error: any) {
- console.log('❌ 账户余额订阅异常:', error.message)
- }
- // 测试2: 账户仓位订阅
- console.log('\n📊 测试账户仓位订阅...')
- try {
- const positionsResult = await adapter.getPositions(testAccount)
- if (positionsResult.success) {
- console.log('✅ 账户仓位订阅成功!')
- console.log('📊 仓位数据:', positionsResult.data)
- } else {
- console.log('❌ 账户仓位订阅失败:', positionsResult.error)
- }
- } catch (error: any) {
- console.log('❌ 账户仓位订阅异常:', error.message)
- }
- // 测试3: 连接状态检查
- console.log('\n🔍 连接状态检查:')
- console.log(` WebSocket连接: ${adapter.isConnected() ? '✅ 已连接' : '❌ 断开'}`)
- console.log(` 消息队列长度: ${adapter.getQueueLength()}`)
- } catch (error: any) {
- console.error('❌ 测试过程中发生错误:', error.message)
- console.error('错误详情:', error)
- } finally {
- // 清理资源
- try {
- await adapter.close()
- console.log('\n🧹 资源清理完成')
- } catch (error: any) {
- console.log('⚠️ 资源清理时发生错误:', error.message)
- }
- }
- console.log('\n✅ Pacifica WebSocket订阅测试完成!')
- }
- // 代理状态测试
- async function testProxySubscriptionStatus() {
- console.log('\n🔍 代理订阅状态检查:')
- const proxyConfig = {
- enabled: process.env.PROXY_ENABLED === 'true',
- host: process.env.PROXY_HOST,
- port: process.env.PROXY_PORT,
- user: process.env.ASTER_PROXY_USER,
- hasSessionPrefix: !!process.env.ASTER_PROXY_SESSION_PREFIX,
- hasSessionSuffix: !!process.env.ASTER_PROXY_SESSION_SUFFIX,
- }
- console.log(' 配置状态:')
- console.log(` 代理启用: ${proxyConfig.enabled ? '✅' : '❌'}`)
- console.log(` 代理主机: ${proxyConfig.host || '未配置'}`)
- console.log(` 代理端口: ${proxyConfig.port || '未配置'}`)
- console.log(` 测试账户: ${process.env.PACIFICA_ACCOUNT_1?.substring(0, 8) + '...' || '未配置'}`)
- if (proxyConfig.enabled && proxyConfig.host && proxyConfig.user) {
- console.log(' ✅ 代理配置完整,支持WebSocket订阅测试')
- } else {
- console.log(' ⚠️ 代理配置不完整,WebSocket可能直连')
- }
- }
- // 运行测试
- if (import.meta.url === `file://${process.argv[1]}`) {
- Promise.resolve()
- .then(() => testProxySubscriptionStatus())
- .then(() => testWebSocketSubscriptions())
- .catch(error => {
- console.error('🚨 测试失败:', error)
- process.exit(1)
- })
- }
- export { testWebSocketSubscriptions }
|