【发布时间】:2020-06-23 11:49:56
【问题描述】:
在使用 localhost 时,我使用以下代码来实现套接字功能-
服务器端
var express = require('express');
var app = express();
const io = require('socket.io')(5000);
客户端
<script src="http://localhost:5000/socket.io/socket.io.js"></script>
<script>const socket = io.connect('http://localhost:5000');</script>
上面的代码在本地对我来说很好用。之前尝试使用官方文档中给出的代码,但没有成功。尝试加载 socket.io.js 文件时出现 404 错误,它在客户端显示“io is not defined”。该代码如下 -
服务器端
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
客户端
<script src="/socket.io/socket.io.js"></script>
<script>var socket = io.connect('http://localhost');</script>
现在我需要将应用程序部署到 Heroku,但不知道如何执行套接字功能。我尝试了上述两种方法,但在 Heroku 中都没有。我收到“404 错误”和“io 未定义”。服务器端代码用 ./app.js 编写,客户端代码用 ./public/index.html 编写。
如何让这个套接字功能在 Heroku 中工作,以及为什么官方代码甚至不能在本地工作?
【问题讨论】:
标签: node.js express heroku socket.io