Socket.io握手在站点上失败,但在本地主机上失败

Socket.io握手在站点上失败,但在本地主机上失败,socket.io,Socket.io,Socket.io握手在我的站点上失败,但在本地主机上失败。 我必须提供自定义握手,因为socket.io无法找到我的查询参数 以下是我在socket.service.js中的声明: var ioSocket = io('https://my-site.rhcloud.com//?EIO=2&transport=polling&t=1414328625757-0& token=' + Auth.getToken(), { }); 以及我如何在服务器端捕获它: sock

Socket.io握手在我的站点上失败,但在本地主机上失败。 我必须提供自定义握手,因为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 
我在这里真的迷路了,在谷歌上翻了很多东西,但都没有成功。
任何帮助都将不胜感激

经过大量搜索,我意识到问题来自Openshift。您必须指定要使用的端口套接字。见本文:

所以,我不得不写:

var ioSocket = io('http://my-site.rhcloud.com:8000, {

});

Nginx proxy通过以下配置解决了该问题:

location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}

原始解决方案。它对我来说非常有用(Ubuntu14.4+Plesk12.5)。

我将我的node/express服务器部署到Azure,并出现以下错误

websocket.js:100 websocket连接到“ws://mywebsitename.azurewebsites.net/socket.io/?EIO=3&transport=websocket&sid=ssEHs-owxi6mcchyaab”失败:websocket握手期间出错:意外响应代码:503

,我通过在Azure控制台中启用WebSocket修复了我的问题,如下所示

你在哪里写的?在IIS 8上运行Windows时,我遇到了同样的问题。有什么建议吗?谢谢。我的意思是我使用的是NodeBB论坛软件,所以我并没有在任何地方声明套接字。我想修复它,而不需要过多地进入源代码。@OndrejTokar对延迟表示抱歉,没有看到您的评论。我在客户端声明了这一点,在负责套接字声明的Angular服务中