带有Socket.IO的Google App Engine /计算引擎

时间:2017-06-14 19:23:35

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

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

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

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

2 个答案:

答案 0 :(得分:2)

可以使用运行Node.js的Flexible Environment来完成。然而,

  

注意:App Engine当前不支持安全WebSockets   灵活的环境。 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

答案 1 :(得分:0)

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