【问题标题】:Google App Engine using sockets with NodeJsGoogle App Engine 使用带有 NodeJ 的套接字
【发布时间】:2019-02-18 02:08:21
【问题描述】:

我正在使用 Google App Engine 运行节点 js 应用程序,它可以工作。问题是我想运行另一个节点 js 应用程序,它实际上是一个 websocket 并在互联网和文档上搜索,我发现他们现在支持套接字(之前他们不支持)!

唯一的问题是缺少节点 js 文档,或者他们仍然不支持仅用于节点 js 的套接字,但我找不到答案。也许有人可以解决这个问题。

请不要建议使用 Google Compute Engine 来运行我的 websocket 服务器,我知道这样可以。

【问题讨论】:

    标签: node.js google-app-engine


    【解决方案1】:

    如果您使用的是 Google App Engine Flexible,websocket 是 available in beta.

    我使用了that example 并将其部署在 App Engine Flex 上,并且可以正常工作

    由于并非所有客户端都支持 websocket,一个常见的解决方法是使用Socket.IO

    如果您将使用 Socket.IO,则需要像这样更改 app.yaml 中的会话亲和性

    network:
      session_affinity: true
    

    你会发现更多关于here的信息

    【讨论】:

      【解决方案2】:

      这个 app.yaml 配置对我有用:

      runtime: nodejs env: flex manual_scaling: instances: 1 network: session_affinity: true

      我通过这个命令启用了防火墙规则:

      gcloud compute firewall-rules create default-allow-websockets --allow tcp:65080 --target-tags websocket --description "Allow websocket traffic on port 65080"

      【讨论】:

      • 需要在app.yaml中转发端口吗?例如。网络: session_affinity: true forwarded_ports: - 65080/tcp
      猜你喜欢
      • 2018-01-23
      • 2013-04-02
      • 1970-01-01
      • 2015-05-31
      • 2013-06-21
      • 2013-06-15
      • 2017-11-17
      • 1970-01-01
      • 2017-01-10
      相关资源
      最近更新 更多