生产环境中客户端 socket.io 错误



我正在开发我的汽车预订网络应用程序.. 我在开发环境中使用 Nodejs 和 socket.io.. 它与 socket.io 的实时通信工作得很好。 但是当我尝试在 Heroku 上部署它时,这是一场噩梦,因为它是我在部署阶段的第一个项目。 在部署中,在我遇到一堆错误后,这个在浏览器控制台中非常顽固地显示:

网::ERR_SSL_PROTOCOL_ERROR

ReferenceError: io 未在myScript中定义.js

服务器上的代码

let express = require('express');
let app = express();
let http = require('http').Server(app);
let io = require("socket.io")(http);
app.use("/", require('../routing'));
io.on('connection', (socket) => {
socket.on('greet',(params)=>{
console.log(params)
})
});

目录

<script src="https://realtimeapp.herokuapp.com:80/socket.io/socket.io.js"></script>
<script src="/web-sockets/myScript.js"></script>

我的脚本.js

let socket = io.connect('https://realtimeapp.herokuapp.com:80')
socket.emit('greet', "hello!")

我想我搞砸了铭文标签。.

提前谢谢你

您是否在服务器端使用了以下代码

http.listen(process.env.PORT)

如果您使用它,则可以使用服务器端。

在客户端,您无需提供应用程序的整个 URL。 只需使用以下代码

<script src="/socket.io/socket.io.js"></script>
<script src="/web-sockets/myScript.js"></script>

在脚本中.js使用

let socket=io()

最新更新