【问题标题】:Socket server with Node.js and Cloud9 IDE带有 Node.js 和 Cloud9 IDE 的套接字服务器
【发布时间】:2016-10-27 21:07:51
【问题描述】:

我对 Cloud9 IDE 完全陌生,所以我的问题有点愚蠢,但我在文档中找不到答案。我想使用 Node.js + MongoDB 作为套接字服务器制作客户端 - 服务器应用程序,以及在我的机器上调试和运行的客户端 - 桌面应用程序(Cloud9 IDE 不支持我编写它的语言)。查看 Cloud9 IDE,我发现它非常适合开发我的应用程序的服务器端部分,并且可以作为托管解决方案。但我找不到如何从客户端建立套接字连接。为此,我需要知道我的服务器的 IP 地址或域地址(我想它看起来像“https://socialcrm-c9-painkkkiller.c9.io”)和端口号。 在文档中,我发现“使用 process.env.PORT 作为端口,使用 process.env.IP 作为脚本中的主机!”但是要连接到服务器,我需要它们的真实值!命令 console.log(process.env.PORT) 和 console.log(process.env.IP) 只给我“8080”和 0.0.0.0 使用“https://socialcrm-c9-painkkkiller.c9.io”作为域和 8080 作为端口会给我套接字错误。那么有可能吗?如果可能的话怎么做?

【问题讨论】:

标签: node.js sockets cloud9-ide


【解决方案1】:

Cloud9 将 https://socialcrm-c9-painkkkiller.c9.io 的 80 端口转发到容器中的 8080 端口。所以不需要指定端口。

我们也支持网络套接字,它们的工作方式相同。无需指定其他端口。

您唯一需要做的就是确保在启动后端进程时使用环境变量连接到正确的 $IP 和 $PORT。

【讨论】:

  • 感谢回复,我了解端口,它可以是80或8080,但我仍然不知道如何知道正确的$IP。我看到的所有示例都是从 process.env.IP 中获取的,但我的前端没有托管在 Cloud9 上,所以我无法访问环境变量。所以我再一次问这可能吗?如果可能的话怎么做?
  • 据我了解的问题是 url socialcrm-c9-painkkkiller.c9.io 实际上不是真正的 url,我无法 ping 它来了解 IP。所以所有的套接字连接都失败了。我想出于安全原因,这是不可能的。
【解决方案2】:

老问题 - 但我正在努力解决类似的问题。我没有添加评论的声誉,但这应该可以回答您有关将 IP 放入 Cloud9 应用程序的问题。

您可以参考process.env.IP获取IP...然后,您可以参考process.env.PORT获取端口。

取自: https://community.c9.io/t/writing-a-node-js-app/1731

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2011-06-12
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2013-11-23
    相关资源
    最近更新 更多