【发布时间】:2016-10-24 01:23:55
【问题描述】:
这是我可以在本地运行的一段代码:
服务器:
var app = require('express')();
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.get('/', function (req, res) {
console.log("Got '/'");
res.status(200).send('Hello, world!');
});
var server = app.listen(process.env.PORT || '80', function () {
console.log('App listening on port %s', server.address().port);
});
var io = require('socket.io')(server);
io.on('connection', function (socket) {
console.log("connection");
});
客户端:(TypeScript,从不同端口上的单独应用程序运行,http://localhost:8080)
this.socket = io("http://localhost");
this.socket.on("connect", () => this.onSocketConnect());
当服务器 si 部署在 Google App Engine 上,并且客户端在本地运行且地址更改为 http://my-app-id.appspot.com 时,我收到以下错误:
与“ws://my-app-id.appspot.com/socket.io/?EIO=3&transport=websocket&sid=-Qr3YEeyZLk9K3zmAAAC”的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:400
这是什么原因造成的,我该如何解决?另外,一旦我开始运行,我打算更改为 https,那里有什么需要注意的吗?
【问题讨论】:
标签: javascript node.js google-app-engine socket.io