Skip to main content
Glama
test-ws-simple.js3.26 kB
#!/usr/bin/env node import WebSocket from 'ws'; const urls = [ 'ws://node.zetrix.com:7053', 'ws://test-node.zetrix.com:7053', 'ws://node-ws.zetrix.com', 'ws://test-node-ws.zetrix.com', 'ws://node-ws.zetrix.com:7053', 'ws://test-node-ws.zetrix.com:7053', 'ws://node-ws.zetrix.com:80', 'ws://test-node-ws.zetrix.com:80', ]; async function testURL(url) { return new Promise((resolve) => { console.log(`\nTesting: ${url}`); const timeout = setTimeout(() => { ws.close(); resolve({ url, success: false, error: 'Timeout' }); }, 5000); const ws = new WebSocket(url); ws.on('open', () => { clearTimeout(timeout); console.log(`✓ Connected to ${url}`); // Send CHAIN_HELLO const hello = { type: 0, // CHAIN_HELLO api_list: [7, 8, 16, 17, 18], timestamp: Date.now() }; ws.send(JSON.stringify(hello)); }); ws.on('message', (data) => { try { const msg = JSON.parse(data.toString()); console.log(`✓ Received response from ${url}`); console.log(` Type: ${msg.type}`); if (msg.buchain_version) { console.log(` Version: ${msg.buchain_version}`); } clearTimeout(timeout); ws.close(); resolve({ url, success: true, response: msg }); } catch (err) { console.log(`✗ Parse error: ${err.message}`); clearTimeout(timeout); ws.close(); resolve({ url, success: false, error: 'Parse error' }); } }); ws.on('error', (err) => { clearTimeout(timeout); console.log(`✗ Error: ${err.message}`); resolve({ url, success: false, error: err.message }); }); ws.on('close', () => { clearTimeout(timeout); }); }); } async function main() { console.log('Testing Zetrix WebSocket URLs...\n'); console.log('=' .repeat(60)); const results = []; for (const url of urls) { const result = await testURL(url); results.push(result); await new Promise(r => setTimeout(r, 500)); // Wait between tests } console.log('\n' + '='.repeat(60)); console.log('\nSUMMARY:'); console.log('='.repeat(60)); const successful = results.filter(r => r.success); const failed = results.filter(r => !r.success); console.log(`\n✓ Successful: ${successful.length}`); successful.forEach(r => console.log(` - ${r.url}`)); console.log(`\n✗ Failed: ${failed.length}`); failed.forEach(r => console.log(` - ${r.url} (${r.error})`)); if (successful.length > 0) { console.log('\n' + '='.repeat(60)); console.log('RECOMMENDED CONFIGURATION:'); console.log('='.repeat(60)); const mainnetNew = successful.find(r => r.url.includes('node-ws.zetrix.com')); const testnetNew = successful.find(r => r.url.includes('test-node-ws.zetrix.com')); const mainnetOld = successful.find(r => r.url === 'ws://node.zetrix.com:7053'); const testnetOld = successful.find(r => r.url === 'ws://test-node.zetrix.com:7053'); const mainnet = mainnetNew || mainnetOld; const testnet = testnetNew || testnetOld; if (mainnet) console.log(`\nMainnet: ${mainnet.url}`); if (testnet) console.log(`Testnet: ${testnet.url}`); } console.log(); } main();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zetrix-Chain/zetrix-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server