【发布时间】:2014-11-18 11:39:36
【问题描述】:
Socket.io 握手在我的站点上失败,但在 localhost 上没有。 我必须提供自定义握手,因为 socket.io 无法找到我的查询参数。
这是我在 socket.service.js 中的声明:
var ioSocket = io('https://my-site.rhcloud.com//?EIO=2&transport=polling&t=1414328625757-0&
token=' + Auth.getToken(), {
});
以及我如何在服务器端捕获它:
socketio.use(function(socket, next) {
request.get('https://my-site.rhcloud.com/api/users/chan', {qs:{access_token:socket.handshake.query.token}}, function(err, me) {
if (err||!me.body|| me.body=='Unauthorized') {
if (!me) console.log('!me');
if (err) console.log(err);
next(err);
}
else {
// perfoming operations
next();
}
});
});
这是我收到的消息:
WebSocket connection to 'wss://my-site.rhcloud.com/socket.io/?EIO=2&transport=websocket&t=…YwMX0.1F6ebfNxzoDPYffXGapGMzLFPJd-mfN0EexqZzXXo7A&sid=z0Jmrbgb7OS0nbqxAAAG' failed: Error during WebSocket handshake: Unexpected response code: 400
我真的迷路了,在 Google 上进行了很多研究,但没有成功。 任何帮助将不胜感激!
【问题讨论】:
标签: socket.io