【发布时间】:2020-03-26 08:31:29
【问题描述】:
我一直在用 node 和 express 做很多在线课程。我想让 sockets.io 工作,但目前我什至无法建立连接。我正在使用 cPanel 虚拟专用服务器并在服务器终端中运行代码,然后尝试使用服务器上托管的网站来访问服务器上运行的 .js 文件。
我尝试了各种不同的方法,但我将其降低到最基本的水平以尝试建立连接。我看过的所有视频都在本地机器上运行,并使用本地机器上的命令提示符运行.js文件和浏览器访问http://localhost:3000。
我在 cPanel 服务器上运行的 .js 文件如下所示;
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');
});
这只是代码的 sn-p,但我想知道如何在没有 http://localhost:3000 的情况下从浏览器访问 3000 端口
【问题讨论】:
-
可能是服务器上的端口没有暴露?
-
服务器在哪里运行?你能从命令行
ping服务器吗? -
如何暴露端口?服务器是在我租用的私人公司运行的 VPS。
标签: javascript node.js express websocket socket.io