Чем заменить «http://localhost: 3000» при использовании сервера, а не локальной машины? - PullRequest
0 голосов
/ 26 марта 2020

Я делал много онлайн-курсов с узлом и express. Я хочу, чтобы sockets.io работал, но я не могу даже установить sh соединение в данный момент. Я использую виртуальный частный сервер cPanel и запускаю код на серверном терминале, а затем пытаюсь использовать веб-сайт, размещенный на сервере, для доступа к файлу. js, работающему на сервере.

Я перепробовал все разные вещи, но я пытаюсь установить соединение до самого базового уровня c. Все видео, которые я видел, запущены на локальном компьютере и используют командную строку на локальном компьютере для запуска файла .js и браузера для доступа к http://localhost:3000.

Файл .js I работает на моем сервере cPanel выглядит так:

var express = require('express');
var app = express();

app.get('/', function(req,res){
    res.send('Hello world 2');
})

app.listen(3000);

Так как же мне получить доступ к этому через браузер? Я попытался http://mywebsite.com:3000 и http://11.22.33.444:3000, если 11.22.33.444 - ip сервера, но браузер просто отключился, и в консоли сервера нет вывода.

в конечном итоге мне нужно запустить socket.io команда выглядит следующим образом:

var socket = io.connect('http://localhost:3000');

и во всех уроках, которые я видела, они используют этот localhost: 3000, но никто не объясняет, как получить к нему доступ, если он находится на реальном сервере, так что я довольно растерялся .

Существуют и другие примеры, например;

...
const http = require('http').createServer();
...
http.listen(3000 => () => {
  console.log('listening on port 3000');
});

Это всего лишь фрагмент кода, но мне интересно, как я тогда получаю доступ к этому порту 3000 из браузера без http://localhost:3000

Ответы [ 3 ]

1 голос
/ 26 марта 2020

Если вы прочитаете документы, вы увидите, что есть руководство по его подключению express: https://socket.io/docs/

 var app = require('express')();
 var server = require('http').Server(app);
 var io = require('socket.io')(server);

 server.listen(3000);
 // WARNING: app.listen(3000) will NOT work here!

 app.get('/', function (req, res) {
   res.status(200).json({ message: "Connected" });
 });

 io.on('connection', function (socket) {
  console.log("somebody connected");
 });
0 голосов
/ 27 марта 2020

Не нужно указывать какой-либо адрес в io.connect ()

const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);



http.listen(process.env.PORT || 3000, function() {
});
<script src="/socket.io/socket.io.js"></script>

      var socket = io.connect();
0 голосов
/ 26 марта 2020

Думаю, я только что решил это. Я пробовал другой порт, и он работал: /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...