允许Google Compute Engine(GCE)中的WebSockets

时间:2015-12-15 07:30:37

标签: node.js websocket socket.io google-compute-engine

我使用Compute Engine(GCE)使用Socket.IO(Node.js)运行我的套接字服务器

它只与轮询合作。当我尝试使用Web客户端时,我收到此错误代码:

WebSocket connection to 'ws://myapp-socket.appspot.com/socket.io/?EIO=3&transport=websocket&sid=Tt4uNFR2fU82zsCIAADo' failed: Unexpected response code: 400 

我做错了什么?是GCE配置问题吗?

2 个答案:

答案 0 :(得分:6)

使用WebSockets时,不能在脚本中使用myapp-socket.appspot.com域。相反,您将需要使用GCE实例的外部IP并直接连接到该实例,打开您可能正在使用的任何防火墙端口。

我相信进入appspot.com域的流量也通过前端Web服务器,socket.io需要直接连接到服务器。

答案 1 :(得分:2)

Google Compute Engine中的虚拟机具有用于http的端口80和用于https的端口443。将这些端口用于Web套接字解决了这个问题。