В настоящее время я работаю с Socket.IO fro nodejs, чтобы разделить некоторую информацию в реальном времени между сервером и некоторыми клиентами. Клиенты должны общаться только с сервером, а не друг с другом.
В окнах все нормально, и я могу обмениваться информацией, но, поскольку это помещает вещи в vps linux, у меня возникла проблема, что он начал все на ipv6-сокете, из-за которого мне было сложно связаться с клиентским браузером libary from socket.io
Я запускаю сервер следующим образом:
io = require('socket.io').listen(3000);
который отлично работал, и я мог подключиться. Теперь в vp linux я попытался предотвратить ipv6, используя адрес ipv4, подобный этому
io = require('socket.io').listen(3000, '0.0.0.0');
но это не сработало, а не на linux, а не на windows. Он не привязывает сокет к ip, который я хочу, если я не использую http-сервер следующим образом:
http = require('http').createServer().listen(3000, '0.0.0.0');
io = require('socket.io').listen(http);
Теперь мой вопрос: нужно ли мне использовать http-сервер для решения проблемы привязки сокета к правильному локальному ip и порту или есть ли какое-нибудь другое решение? И запускает ли socketio http-сервер в фоновом режиме в случае моей первой строки кода, так как это веб-сокет или выполняет работу сокета без http-сервера?
Большое спасибо:)