【发布时间】:2015-04-18 01:20:05
【问题描述】:
这与此处的stackoverflow问题有关:Run Websocket on GAE。
我正在尝试使用 boot2docker 参数在沙盒 google 自定义运行时 nodejs 环境中运行 mozilla's browserquest 的版本,如下所示:
docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): darwin/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
我已经控制了很多潜在的错误,包括将服务器转移到端口 8001 并公开该端口以避免与为谷歌应用引擎管理员保留的 8000 端口冲突。
但是我目前陷入困境,因为据我所知,要成功完成这项任务,我需要向我的应用程序提供我的服务器的 ip 才能使用 websockets(有关此问题的说明,请参阅 @987654323 @ 以及其中的 readme.md 中关于使用 http://[DOCKER-IP]:3000 而不是 http://localhost:3000 的评论,说要检查)。
特别是,我想知道是否有任何优雅或简单的技术来配置 dockerfile,或更改一些其他配置设置,或确定 ip,以便可以使用 websockets(例如 browserquest)自动将应用程序指向当客户端尝试连接到服务器上的 websocket 时正确的 ip。
我最终想要的是我可以添加到我的项目中,以便在我输入时
gcloud preview app run .
然后将我的浏览器指向http://localhost:8080,我将能够进入游戏(从我的主项目目录运行 npm start 然后打开 Web 应用程序的入口点(/client 文件夹中的 index.html) ) 有效)。
【问题讨论】:
-
我找到了一种解决方法 - 如果手动输入 ip(对于本地开发,运行 boot2docker ip 会提供所需的 ip,对于生产,ping http://
.appspot。 com 给出了该实例所需的 ip。所以这个问题可以解决,但是也许找到一种方法来从 docker 容器中读取 ip 的方法是有用的,以便可以自动化配置 ip 的过程发出服务器请求时指向应用程序的地址。
标签: node.js google-app-engine websocket boot2docker