node.js - Socket.io 正在本地主机上工作,但不是 Heroku
问题描述
我设法让套接字在我的 LocalHost 上工作,但是在上传到 Heroku 时出现以下错误。
Heroku 日志:
2020-02-26T19:18:12.223451+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=polling&t=N22xsN8" host=evening-beach-84352.herokuapp.com request_id=9e085385-d06d-42f8-a02b-741ebdb50139 fwd="99.239.140.92" dyno=web.1 connect=1ms service=7ms status=200 bytes=1156 protocol=https
2020-02-26T19:18:16.268249+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=polling&t=N22xtMN" host=evening-beach-84352.herokuapp.com request_id=560a1283-e9ad-4f98-b65d-c98e3af0d989 fwd="99.239.140.92" dyno=web.1 connect=1ms service=7ms status=200 bytes=1156 protocol=https
2020-02-26T19:18:16.340518+00:00 heroku[router]: at=info method=POST path="/socket.io/?EIO=3&transport=polling&t=N22xtNI" host=evening-beach-84352.herokuapp.com request_id=0747c99f-bfa7-4a48-9dc9-396237ea4afd fwd="99.239.140.92" dyno=web.1 connect=1ms service=17ms status=404 bytes=417 protocol=https
2020-02-26T19:18:16.345722+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=polling&t=N22xtNd" host=evening-beach-84352.herokuapp.com request_id=c28aa30e-c33f-4d2b-809d-7f723c9ad2f8 fwd="99.239.140.92" dyno=web.1 connect=1ms service=11ms status=200 bytes=1156 protocol=https
2020-02-26T19:18:16.394512+00:00 heroku[router]: at=info method=POST path="/socket.io/?EIO=3&transport=polling&t=N22xtOS" host=evening-beach-84352.herokuapp.com request_id=93635a58-6c21-4d1a-81b4-ba67c712bc4a fwd="99.239.140.92" dyno=web.1 connect=1ms service=3ms status=404 bytes=417 protocol=https
2020-02-26T19:18:18.146871+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=polling&t=N22xtpq" host=evening-beach-84352.herokuapp.com request_id=8dc8077a-5719-4f97-bd60-dc2f9585efea fwd="99.239.140.92" dyno=web.1 connect=1ms service=5ms status=200 bytes=1156 protocol=https
2020-02-26T19:18:18.104971+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=polling&t=N22xtp6" host=evening-beach-84352.herokuapp.com request_id=1a135498-5911-4757-90a6-52f22188b3ae fwd="99.239.140.92" dyno=web.1 connect=1ms service=8ms status=200 bytes=1156 protocol=https
2020-02-26T19:18:18.174618+00:00 heroku[router]: at=info method=POST path="/socket.io/?EIO=3&transport=polling&t=N22xtqB" host=evening-beach-84352.herokuapp.com request_id=dce824bb-5243-45be-bd9b-5be3026412ac fwd="99.239.140.92" dyno=web.1 connect=1ms service=3ms status=404 bytes=417 protocol=https
2020-02-26T19:18:18.235090+00:00 heroku[router]: at=info method=POST path="/socket.io/?EIO=3&transport=polling&t=N22xtr2" host=evening-beach-84352.herokuapp.com request_id=44dbc61d-5e40-4283-b602-77107c20bdcd fwd="99.239.140.92" dyno=web.1 connect=1ms service=7ms status=404 bytes=417 protocol=https
浏览器控制台日志:
polling-xhr.js:271 POST https://evening-beach-84352.herokuapp.com/socket.io/?EIO=3&transport=polling&t=N22yWHd 404 (Not Found)
我在我的客户端代码上设置了这个:
import socketIOClient from "socket.io-client";
const socket = socketIOClient("https://evening-beach-84352.herokuapp.com/")
这是我的服务器端代码:
const server = require('http').Server(app);
const socketIO = require('socket.io')
const io = socketIO(server, { origin: "*:*" });
const PORT = process.env.PORT || 8080;
解决方案
我最近才开始使用 Heroku,刚刚将 socket.io 添加到我的应用程序中,并且看到了类似的错误。昨天他们走了,今天他们回来了。我的浏览器中有两个选项卡 1 可以工作,另一个不能...
区别:http 与 https
当您单击 Heroku 中的链接将您带到您的应用程序时,它会导航到https://myapp.herokuapp.com但如果我手动导航到http://myapp.herokuapp.com突然所有错误都会消失。
现在我想知道为什么一个有效而另一个无效的原因......
推荐阅读
- windows - 如何使用批处理脚本创建没有文件类型扩展名的文件夹名称并移入创建的子目录?
- flutter - 如何在 Flutter Web App 中连接 Google Analytics?
- microsoft-graph-toolkit - 如何使 MGT React People Picker 组件成为必需
- php - PHP返回php:符号查找错误:php:未定义符号:pcre2_set_depth_limit_8
- python - 如何使用 Python 直接运行 SolidWorks 宏
- go - 谷歌云函数 Golang 单元测试与 init()
- sql - 外键的唯一列,但似乎与另一个表的目的重复。这是惯用的方式吗?
- python - 由于未处理的异常而无法执行脚本:选择默认后端“matplotlib”时需要使用matplotlib进行绘图
- python - 为什么我在这段代码中得到“UnboundLocalError”?
- swiftui - 如何从 NavigationLink 中关闭工作表