【问题标题】:Is there a way to develop a websocket client on the google cloud(appengine or cloud function etc..)?有没有办法在谷歌云(appengine 或云功能等)上开发 websocket 客户端?
【发布时间】:2020-07-12 23:00:02
【问题描述】:

我现在正在寻找一种方法,如何在除了 GCE 之外的 google cloud 上实现 websocket 客户端。

让我简单介绍一下目标。

环境:javascript、nodejs、google cloud(云功能或应用引擎) 我的程序作为我想要获取的 websocket 客户端数据只能通过 websocket 传输(websocket 服务器:服务提供商,客户端:我的程序)。程序将使用调度程序运行,它应该自动执行(在浏览器之外)获取数据后,程序应该被终止。

我认为这种情况不正常使用,因为websocket客户端在浏览器上正常运行。

但是,我必须使用带有云功能和应用引擎的谷歌云平台,而不是计算引擎。我们没有任何可用的本地机器,所以应该使用云平台。为了使用云功能和应用引擎,我们只需在调用时付费。这样就可以省钱了。

但是,我找不到在云平台上实现websocket客户端的方法。因为,云功能和应用引擎与 websocket 不兼容,我总是失败

那么,您能建议如何使用谷歌云平台开发 Web 套接字客户端吗?
 

【问题讨论】:

    标签: node.js google-app-engine websocket google-cloud-functions


    【解决方案1】:

    这是不可能的(对于标准环境),正如几个questions 已经回答的那样,通过 App Engine 拥有 websocket 的唯一方法是使用灵活环境,但可能比 STD ENV 贵一点。

    我发现这个官方 Google document 在灵活 ENV 上使用 web-sockets

    也许最好的省钱方式是使用始终免费的 Compute Engine 虚拟机

    document中所述

    您可以使用始终免费的 f1-micro 实例,此实例在您使用的小时数等于当月总小时数之前是免费的,这意味着如果您使用2个实例,只能免费使用半个月。

    【讨论】:

    • 感谢您的回复。是的,我已经在您提到的文件中看到了类似的问题和答案。事实上,我的程序只需要几分钟就可以完成,因为它是一个客户端。所以灵活的 ENV 对我来说非常巨大。但是,如果我可以在完成要求后强制关闭gae,那对我有好处
    • 启用和禁用 GAE 服务不是一个好主意,因为该过程需要几分钟时间,并且当您关闭 GAE 服务时,无法点击 URL。也许你需要更多的步骤并使用一些额外的服务,比如云功能。我认为拥有 websocket 的唯一更便宜的方法是使用免费的 GCE VM。
    【解决方案2】:

    我可以建议https://www.emitter.dev/ 之类的东西吗(披露:我是创造者)。基本上,你订阅任何你想要的WebSocket 并指定我们应该POST 到哪里。

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 2018-07-15
      • 2017-09-26
      • 2018-03-26
      • 1970-01-01
      • 2021-04-12
      • 2019-07-07
      • 2019-06-11
      • 1970-01-01
      相关资源
      最近更新 更多