test_simple_websocket.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { PacificaWebSocketClient } from './src/exchanges/pacifica/PacificaWebSocketClient.js'
  2. /**
  3. * 简单的WebSocket连接测试
  4. * 不使用代理,直接连接到Pacifica WebSocket
  5. */
  6. async function testSimpleWebSocket() {
  7. console.log('🚀 开始简单WebSocket连接测试...\n')
  8. // 临时禁用代理进行测试
  9. const originalProxyHost = process.env.PROXY_HOST
  10. const originalProxyEnabled = process.env.PROXY_ENABLED
  11. delete process.env.PROXY_HOST
  12. delete process.env.PACIFICA_PROXY_HOST
  13. process.env.PROXY_ENABLED = 'false'
  14. const client = new PacificaWebSocketClient('wss://ws.pacifica.fi/ws')
  15. try {
  16. console.log('📡 尝试连接到 wss://ws.pacifica.fi/ws (无代理)...')
  17. await client.connect()
  18. console.log('✅ WebSocket连接成功!')
  19. console.log('📊 连接状态:', client.isConnectionOpen())
  20. console.log('📋 队列长度:', client.getQueueLength())
  21. // 发送ping测试
  22. console.log('\n💓 测试心跳...')
  23. await new Promise(resolve => setTimeout(resolve, 2000))
  24. console.log('✅ 心跳测试完成')
  25. // 测试一个简单的请求 (注意:这可能不是真实的API端点)
  26. console.log('\n🔄 测试基础请求...')
  27. try {
  28. const response = await client.get('/health', { timeout: 10000 })
  29. console.log('✅ 请求成功:', response)
  30. } catch (error: any) {
  31. console.log('⚠️ 请求失败(这是预期的,因为这不是真实API):', error.message)
  32. }
  33. } catch (error: any) {
  34. console.error('❌ WebSocket连接失败:', error.message)
  35. if (error.message.includes('404') || error.message.includes('426')) {
  36. console.log('💡 这可能是因为端点不支持直接连接或需要特殊握手')
  37. }
  38. } finally {
  39. // 恢复原始环境变量
  40. if (originalProxyHost) process.env.PROXY_HOST = originalProxyHost
  41. if (originalProxyEnabled) process.env.PROXY_ENABLED = originalProxyEnabled
  42. await client.close()
  43. console.log('\n🧹 连接已关闭')
  44. }
  45. console.log('\n✅ 简单WebSocket测试完成!')
  46. }
  47. // 运行测试
  48. if (import.meta.url === `file://${process.argv[1]}`) {
  49. testSimpleWebSocket().catch(error => {
  50. console.error('🚨 测试失败:', error)
  51. process.exit(1)
  52. })
  53. }
  54. export { testSimpleWebSocket }