我使用express和socket.io创建了一个node.js聊天应用程序。它在localhost上运行,其他计算机可以在同一网络上连接到它。我怎样才能将它上网,以便不同网络上的人仍可以使用它?
这是我的package.json,以防它有所帮助:
{
"name": "Node Chat",
"version": "1.0.1",
"description": "Simple chat server",
"dependencies": {
"express": "4.10.2",
"socket.io": "1.2.0"
}
}
答案 0 :(得分:2)
您必须将您的应用程序放在可以通过公共IP地址从开放式互联网联系的计算机上。如果您希望能够使用http://www.example.com等网址与其联系,则需要执行以下步骤:
查找具有可公开访问的IP地址的服务器,您可以在其上运行应用程序。通常,这将是支持node.js应用程序的托管公司的服务器。
设置DNS条目以使您的域和www
前缀指向包含您的服务器进程的正确IP地址。
以响应端口80请求的方式运行服务器进程。在托管公司,可能需要遵循特定的规则才能使您网域中的端口80以您希望的方式工作。
您可以从您自己的本地网络上的服务器实现这些步骤,但这通常需要一堆网络配置才能实现这些步骤。一个洞你的本地防火墙和路由端口80请求到网络上的特定服务器(通常使用端口转发),并允许外部请求到达您的专用网络上的给定服务器,它将涉及一些DNS配置允许域名请求与您的专用网络的公共IP匹配。由于各种原因,如果这是家庭网络,通常不建议使用此配置。
答案 1 :(得分:1)
由于您正在使用node.js,我希望您至少对网站有一些经验,并且您知道它们需要托管在服务器上。你可以自己做,但既然你问这个问题,我认为你没有设备来做这件事。但是,正如您的帖子评论中提到的,有几个托管节点应用程序的提供商。他们中的大多数提供有限的免费服务,如果你为你和一些朋友制作这个应用程序将完全做到这一点。这是一个简短的清单:
您可以找到扩展列表here。