【问题标题】:Google App Engine/Compute Engine with Socket.IO带有 Socket.IO 的 Google App Engine/Compute Engine
【发布时间】:2017-11-17 02:19:47
【问题描述】:

在 AppEngine 上启动了我的 NodeJs 应用程序后,我发现它引发了异常:app.min.js:20 WebSocket connection to 'wss://hostname/socket.io/?EIO=3&transport=websocket&sid=OClcQulfAmcJEpfMAAAV' failed: WebSocket 握手期间出错:意外响应代码:400

尝试 google,我发现 Google Cloud 似乎不支持 WebSockets。由于应用程序是编写的,我们没有太多时间重写它,有没有其他方法可以保持原样并让 socket.io 与谷歌云一起工作?是否可以单独运行 Socket.IO 服务器并通过它进行通信?将应用移到 Compute Engine 上的独立 VM 中可以解决这个问题,或者即使那里也不支持套接字?

跟进:我发现它可以在 Chrome 上运行,因为它会自动切换到池传输。

【问题讨论】:

    标签: node.js sockets google-app-engine socket.io


    【解决方案1】:

    可以使用运行 Node.js 的灵活环境来完成。然而,

    注意:App Engine 目前不支持安全 WebSocket 灵活的环境。 WebSockets 仅在您加载页面时才有效 通过 HTTP(不是 HTTPS)。

    https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/appengine/websockets

    编辑:补充一点,有一个测试版支持使用 typhoonae 的 GAE 的 Web Sockets。以下是感兴趣的人的链接: https://code.google.com/archive/p/typhoonae/wikis/WebSockets.wiki

    【讨论】:

    • 您似乎无法使用GAE通过HTTP 加载您的页面
    【解决方案2】:

    使用 Google App Engine 作为网络前端并在虚拟机中运行 socket.io(用于长期客户端连接)也提供了一种可扩展的解决方案。 A scalable architecture from a real time gaming app on google cloud platform

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 2018-02-14
      • 2017-04-07
      • 2015-11-05
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多