Node.js 在Heroku上托管时socket.io出现问题

Node.js 在Heroku上托管时socket.io出现问题,node.js,socket.io,Node.js,Socket.io,我在将代码服务器上传到Heroku时遇到问题。没有套接字连接消息。 这是Heroku服务器端的代码 var appS = require('express')(); var http = require('http').Server(appS); var io = require('socket.io')(http,{path: '/octagon/socket.io'}); http.listen(3000, function(){ console.log('listening on *:

我在将代码服务器上传到Heroku时遇到问题。没有套接字连接消息。 这是Heroku服务器端的代码

var appS = require('express')();
var http = require('http').Server(appS);
var io = require('socket.io')(http,{path: '/octagon/socket.io'});
http.listen(3000, function(){
  console.log('listening on *:3000');
});


io.sockets.on('connection', function (socket) { 

  socket.on('test',function (message) {

    console.log(message)
  })
})
这是客户端的代码

var socket  = io.connect('https://murmuring-waters-83521.herokuapp.com/',
                {
                    reconnect: true,
                    transports : ['websocket'],
                    ressources: '/octagon/socket.io'
                });
我仍然收到这个信息

WebSocket connection to 'wss://murmuring-waters-83521.herokuapp.com/octagon/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 503

您可以通过更新客户端配置来实现这一点

var socket  = io('//murmuring-waters-83521.herokuapp.com',
  {
      reconnect: true,
      rejectUnauthorized: false, // new
      path: '/octagon/socket.io' // use this instead of `ressources`
  });
  socket.on('connection', function () {
    alert('Browser is connected to server!');
  });

这里正在进行的讨论,有兴趣的人,请加入:)是否有需要调整socket.io客户端服务路径的原因?我删除了服务器和客户机上的
/octagon/socket.io
-在客户机上添加了
拒绝未经授权的:false
选项&它正在工作。您还可以省略
transports:['websocket'],
,因为它将自动升级到
websocket
,如果它可用,这样您就可以支持更多正在工作的DeviceSample站点。没有理由调整socket.io的路径。我在一个论坛上看到了这一点,并试图实现iti发布了一个答案。你能试一下吗?评论不是用来进行长时间讨论的;这段对话已经结束。谢谢@Theo这段代码对我有用