Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让Node.js收听特定网站并使用AWS?_Javascript_Node.js_Amazon Web Services_Express_Socket.io - Fatal编程技术网

Javascript 如何让Node.js收听特定网站并使用AWS?

Javascript 如何让Node.js收听特定网站并使用AWS?,javascript,node.js,amazon-web-services,express,socket.io,Javascript,Node.js,Amazon Web Services,Express,Socket.io,所以我对Node.js有点陌生,但我真的很想使用AmazonWebServices(AWS)在后台托管一个使用Node.js的网站。我在Node中使用Socket.io和Express.js,我有一个带有客户端代码的html文件 以下是每个文件的一部分: server.js: var express = require("express"); var app = express(); var http = require("http").Server(app); var io = require

所以我对Node.js有点陌生,但我真的很想使用AmazonWebServices(AWS)在后台托管一个使用Node.js的网站。我在Node中使用Socket.io和Express.js,我有一个带有客户端代码的html文件

以下是每个文件的一部分:

server.js:

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

io.on("connection", function(socket) {
    console.log("-- User Connected");
});

//express home page
app.get("/", function(req, res) {
    res.sendFile(__dirname + "/index.html");
});

//express listen on 8080
http.listen(8080, function() {
    console.log("Running...\nListening on port 8080");
});
index.html(只是客户端javascript)


$(文档).ready(函数(){
var socket=io.connect();
socket.on(“连接”,函数(){
控制台日志(“已连接”);
});
});
一切都很好,但我想知道如何将其上传到AWS bucket并在那里运行。我已经将完整的.html文件上传到AWS bucket并设置了主机,所以它可以打开并正常运行。但是我如何上传和运行server.js文件呢?在客户端代码(change io.connect()parameters?)和server.js代码(change.listen()to something?)中,我会做哪些更改,以使其在AWS中运行


非常感谢您的帮助,谢谢

存储桶是AWS简单存储的一项功能。它们只支持静态文件。您不能使用它们运行您自己编写的服务器端程序


为此,您需要一个不同的产品,例如EC2。

您可以在Amazon EC2实例上运行Linux。

步骤1:创建项目的Github/Bitbucket存储库,以便在服务器上轻松克隆。GitHub中的私人回购是付费的,而Bitbucket在某些条件下是免费的

步骤2:将SSH插入服务器。克隆项目。安装所需的软件包。现在,您可以像在本地主机上一样在EC2实例上运行节点服务器

步骤3:AWS为您提供公共DNS,例如:
ec2-***-***-***-***-***-***.compute-1.amazonaws.com
现在通过
ec2-52-86-163-5.compute-1.amazonaws.com:3000/


步骤4:要连续运行node应用程序,您需要类似

的东西,您只能使用S3托管静态网站,如中所述

如果您想在AWS上托管Node.js应用程序,我建议您使用Elastic Beanstalk,如中所述。与在EC2上托管Node.js应用程序相比,Beanstalk的主要区别在于它是一种提供运行时环境的服务,即您不必自己设置和管理操作系统。您只需打包应用程序并将其上载到Beanstalk即可。因此,将创建一个启动环境,并使用运行代码所需的AWS资源进行配置


有关更多信息,请阅读

谢谢,我会尝试一下。。。你知道我应该在代码中修改什么才能使它工作吗?不知道。在EC2上工作就像创建本地主机的副本。为了无休止地运行应用程序,您需要像“永远”这样的东西。
<script src = "/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<script>
    $(document).ready(function() {
        var socket = io.connect();
        socket.on("connect", function() {
            console.log("connected");
        });
    });
</script>