【问题标题】:Socket io and Node works locally but not working on herokuSocket io 和 Node 在本地工作,但不能在 heroku 上工作
【发布时间】:2023-03-03 02:51:02
【问题描述】:

代码在本地工作。当我将它推送到 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)

https://bitbucket.org/hassanshaikley/amara-game/src/27b720f463f18b3ca1864fc1028d86e72928b126/scripts/game.js?at=master

如果我缺少详细信息,请告诉我。我有点难过。

【问题讨论】:

    标签: node.js heroku socket.io


    【解决方案1】:

    首先,如果您希望您的客户端连接到您的 heroku 应用程序,您应该使用您的 heroku 应用程序主机而不是 localhost。

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

    【讨论】:

      猜你喜欢
      • 2019-10-12
      • 1970-01-01
      • 2014-05-23
      • 2014-01-02
      • 1970-01-01
      • 2021-04-26
      • 2012-04-01
      • 2021-04-26
      • 2013-03-29
      相关资源
      最近更新 更多