我正在尝试将我的类星体应用程序连接到托管在 heroku 上的 socket.io express 服务器。 问题是每次我尝试连接时,浏览器都会显示 the request is pending,而在后端我从未收到连接消息。
这是我的后端代码
const express = require('express');
const app = express();
const PORT = process.env.PORTA || 3000;
const server = app
.use((req, res) => {})
.listen(PORT, () => console.log(`Server is running on port ${PORT}...`));
const io = require('socket.io')(server, {
cors: {
origin: '*',
credentials: true
}
});
io.on('connection', socket => {
console.log('Connected: ' + socket.id);
});
这是 quasar (vue.js) 中带有 socket.io 扩展的引导文件中的连接
import Vue from 'vue'
import VueSocketIOExt from 'vue-socket.io-extended';
import { io } from 'socket.io-client';
const socket = io(URL_CONNECTION);
Vue.use(VueSocketIOExt, socket);
正如你在后端看到的,我有一个 console.log 来查看连接客户端的 ID。如果我在我的电脑上本地尝试这个,它工作正常,我得到了套接字 id,但在 heroku 上,客户端不会在没有给我任何错误的情况下连接。
答案 0 :(得分:0)
我找到了一种方法来做到这一点。我刚刚删除了我在服务器中插入的自定义端口,并设置了默认端口 (process.env.PORT),然后我从客户端连接,提供端口 80。
现在,我不知道为什么,但它正在起作用。