У меня проблема с новым разработчиком с socket.io
Я получил сервер socket.io, работающий на экземпляре AWS EC2. Это единственный экземпляр с открытым (55.55.55.55) и частным IP-адресом (10.0.1.1) на порте 10000
Я запускаю сервер и затем захожу на веб-сайт, созданный мной в другом экземпляре EC2, который находится в другом VPC (10.5.1.1/16) и другом общедоступном IP-адресе 100.100.100.100
Это код, который я запускаю в этом экземпляре на стороне клиента веб-сокета (отобразить простой чат-тест)
<script>
const display_panel = document.getElementById('ws');
const number_of_lines_displayed = document.getElementById('info_lines');
let socket = io('http://55.55.55.55:10000');
let line_counter = 0;
socket.on('test', (msg) => {
if(line_counter < {{ max_lines }})
{
let span = document.createElement('span');
let text = document.createTextNode(msg);
let newline = document.createElement('br');
span.appendChild(text);
display_panel.insertBefore(newline, display_panel.firstChild);
display_panel.insertBefore(span, display_panel.firstChild);
number_of_lines_displayed.innerHTML = 'line(s): ' + line_counter++;
}
});
</script>
Затем я получил тайм-аут соединения.
На стороне сервера я запускаю сервер, пробуя все возможные решения, но мне не удалось подключиться во всех ситуациях
- 10.0.1.1: 10000
- 127.0.0.1: 10000
- 0.0.0.0: 10000
- 55.55.55.55: 10000
в этом последнем случае сервер выдаст мне эту ошибку
Bugsnag: Encountered an uncaught error, terminating…
1|test | Error: listen EADDRNOTAVAIL 55.55.55.55:10000
1|test | at Object._errnoException (util.js:992:11)
1|test | at _exceptionWithHostPort (util.js:1014:20)
1|test | at Server.setupListenHandle [as _listen2] (net.js:1338:19)
1|test | at listenInCluster (net.js:1396:12)
1|test | at doListen (net.js:1505:7)
1|test | at _combinedTickCallback (internal/process/next_tick.js:141:11)
1|test | at process._tickDomainCallback (internal/process/next_tick.js:218:9)
1|test | at Function.Module.runMain (module.js:695:11)
1|test | at startup (bootstrap_node.js:191:16)
1|test | at bootstrap_node.js:612:3
Я не понимаю, как я могу заставить эту вещь работать. Поскольку я пытаюсь достичь публичного IP-адреса, мне не нужен мост между VPC (это было бы моим любимым решением)
Netstat дай мне это во всех случаях
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.0.1.1:10000 0.0.0.0:* LISTEN 18132/test.js
В локальной среде все работает нормально, поэтому проблема не в коде, а в проблемах сети.
Спасибо за помощь!