2015-12-15 18 views
8

Tôi đang sử dụng Compute Engine (GCE) để chạy máy chủ socket của tôi với Socket.IO (Node.js)Cho phép WebSockets trong Google Compute Engine (GCE)

Chỉ hoạt động với việc bỏ phiếu. Khi tôi cố gắng sử dụng ứng dụng web, tôi nhận được mã lỗi này:

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

Tôi đang làm gì sai? Có phải vấn đề về cấu hình GCE không?

+0

Tôi đang gặp phải sự cố tương tự. Bạn có thể giải quyết vấn đề này không? –

+0

@NewtonJoshua, chi tiết về infra? Bạn sử dụng Nginx? –

+0

@TarunLalwani: Không. Tôi không dùng Nginx. Có một máy chủ Node và máy khách Angular sử dụng socket.io. –

Trả lời

5

Bạn không thể sử dụng miền myapp-socket.appspot.com trong tập lệnh của mình khi sử dụng WebSockets. Thay vào đó, bạn sẽ cần phải sử dụng ip bên ngoài của cá thể GCE và kết nối trực tiếp vào đó, mở bất kỳ cổng tường lửa nào bạn có thể đang sử dụng.

Tôi tin rằng lưu lượng truy cập vào miền appspot.com cũng sẽ thông qua máy chủ web giao diện người dùng và socket.io cần kết nối trực tiếp với máy chủ.

+1

Ngay cả sau khi sử dụng địa chỉ IP bên ngoài, sự cố vẫn còn –

+1

Hãy thử tất cả các giải pháp trong [socket # 1942] (https://github.com/socketio/socket.io/issues/1942) hiện tại của ổ cắm. io – SACn

1

Máy ảo trong Google Compute Engine có cổng 80 cho http và cổng 443 cho https. Sử dụng các cổng này cho các ổ cắm web đã giải quyết được vấn đề.

Các vấn đề liên quan