Google App Engine/Compute Engine with Socket.IO



在AppEngine上启动我的NodeJs应用程序后,我发现它抛出了一个异常:app.min.js:20 WebSocket 连接到"wss://hostname/socket.io/?EIO=3&transport=websocket&sid=OClcQulfAmcJEpfMAAAV"失败:WebSocket 握手期间出错:意外响应代码:400

尝试谷歌,我发现谷歌云似乎不支持WebSockets。既然应用程序已经编写好了,我们没有太多时间重写它,有没有其他方法可以让事情保持原样并 socket.io 使用 Google Cloud?是否可以单独运行 Socket.IO 服务器并通过它进行通信?将应用程序移动到计算引擎上的独立 VM 可以解决这个问题,或者即使在那里也不支持套接字?

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

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

注意:App Engine 目前不支持安全网络套接字 灵活的环境。WebSockets只有在您加载页面时才有效 通过 HTTP(不是 HTTPS(。

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

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

使用 Google App Engine 作为 Web 前端并在虚拟机中运行 socket.io(用于长期客户端连接(也提供了一个可扩展的解决方案。来自谷歌云平台上的实时游戏应用程序的可扩展架构

最新更新