Node.js 套接字io和节点在本地工作,但在heroku上不工作

Node.js 套接字io和节点在本地工作,但在heroku上不工作,node.js,heroku,socket.io,Node.js,Heroku,Socket.io,代码在本地工作。当我把它推给heroku时,会有问题 我确信港口是对的。我不知道是什么问题。我怀疑这是客户端代码的问题。我试着把它改成https://而不是http://但是这使得它停止在本地和heroku上工作 FF上的错误: Firefox can't establish a connection to the server at ws://localhost/socket.io/?EIO=2&transport=websocket. Chrome上的错误: WebSocket c

代码在本地工作。当我把它推给heroku时,会有问题

我确信港口是对的。我不知道是什么问题。我怀疑这是客户端代码的问题。我试着把它改成https://而不是http://但是这使得它停止在本地和heroku上工作

FF上的错误:

Firefox can't establish a connection to the server at ws://localhost/socket.io/?EIO=2&transport=websocket.
Chrome上的错误:

WebSocket connection to 'ws://localhost/socket.io/?EIO=2&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 404 

//on the client side
socket = io.connect("http://localhost", {port: PORT, transports: ["websocket"]});


//on the server side
var port = Number(process.env.PORT || 4000);
var express = require("express");
var logfmt = require("logfmt");
var app = express();
app.set('views', __dirname + '/views');

var server = require('http').createServer(app)
  io = require("socket.io").listen(server);

  io.set("transports", ["websocket"]);
  io.set("polling duration", 10)


如果我遗漏了细节,请告诉我。我有点困惑。首先,如果你想让你的客户端连接到你的heroku应用程序,你应该使用你的heroku应用程序主机而不是本地主机

var host = location.origin;
io.connect(host, {port: PORT, transports: ["websocket"]});