2016-07-03 2 views
-1

Я сделал чат-приложение с node.js и socket.io, но он работает, однако я не хочу запускать его с localhost: 80 больше, я хочу, чтобы он быть он-лайн. Как я могу переместить мое веб-приложение? Я попытался перекрыть порт HTTP, но это не сработало. Вот мой код Sever стороны:Как перенаправить приложение socket.io

var express = require("express"), 
    app = express(), 
    server = require("http").createServer(app), 
    io = require("socket.io").listen(server); 
server.listen(80); 

app.get("/", function(req, res){ 
    res.sendfile(__dirname + "/index.html"); 
}); 

Так что да, все, что я хочу сделать, это вместо того, чтобы использовать «локальный: 80» Я хочу, чтобы иметь возможность использовать свой IP-адрес для подключения.

ответ

0

Обычная переадресация портов с вашего домашнего маршрутизатора должна работать нормально. Соединение socket.io - это соединение webSocket внизу, и соединение webSocket начинает работать как HTTP-запрос, а тот же исходный сокет затем «обновляется» до протокола webSocket. Таким образом, клиент делает HTTP-запрос на сервер, чтобы запустить весь процесс и установить исходное соединение.

Таким образом, любая конфигурация переадресации портов, которая будет работать для HTTP, должна работать на соединение socket.io.

Соединения Socket.io - это долгоживущие соединения (в отличие от TCP-соединений), поэтому вам также необходимо убедиться, что нет инфраструктуры, которая не позволит долгое время подключаться (прокси-серверы часто должны быть специально сконфигурированы для долговременных подключений webSocket), но это должно относиться к переадресации портов.


FYI, вам не нужно .listen() для подключения Socket.io. Вы можете изменить это:

io = require("socket.io").listen(server); 

к этому:

io = require("socket.io")(server); 

В случае, если это не ясно, к вашему с портом forwrarding ...

Когда вы делаете порт переадресации на ваш домашний маршрутизатор, вы направляете входящие запросы на определенный порт на определенный компьютер и порт в своей домашней сети. Затем, когда вы хотите подключиться к Интернету, вы подключаетесь к общедоступному IP-адресу вашего маршрутизатора и порту, который вы настроили для перенаправления портов. Затем маршрутизатор использует правило переадресации портов, чтобы перенаправить любой входящий запрос на нужном порту на конкретный сервер в вашей локальной сети. Вы должны быть очень осторожны в этом, потому что, если вы совершаете ошибки или не имеете надлежащего обеспечения вашего приложения, это может открыть точку атаки, где люди в Интернете могут атаковать внутренние сети вашей домашней сети.

Обычно это не долгосрочная схема, и лучше заплатить хостинговой компании за запуск приложения. Затем вы также можете получить постоянный IP-адрес и можете настроить доменное имя для соответствия этому IP-адресу.

+0

@AlexYates - Это ответ на ваш вопрос? – jfriend00

Смежные вопросы