Javascript 与我的quasar应用程序连接的后端套接字io存在问题。套接字io代码403(禁止)错误
我有一个我开发的Quasar应用程序,运行良好。我正在做一个更新,不知怎的,从开发模式转到生产模式,又把我的web套接字连接搞砸了。我在ubuntu服务器上使用pm2,通过连接到我数据库的express服务器启动应用程序 服务器代码段:Javascript 与我的quasar应用程序连接的后端套接字io存在问题。套接字io代码403(禁止)错误,javascript,node.js,express,socket.io,quasar,Javascript,Node.js,Express,Socket.io,Quasar,我有一个我开发的Quasar应用程序,运行良好。我正在做一个更新,不知怎的,从开发模式转到生产模式,又把我的web套接字连接搞砸了。我在ubuntu服务器上使用pm2,通过连接到我数据库的express服务器启动应用程序 服务器代码段: const Express = require('express'); const path = require('path'); var cors = require('cors') var app = Express(); var http = requir
const Express = require('express');
const path = require('path');
var cors = require('cors')
var app = Express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var mysql = require('mysql');
var CryptoJS = require('crypto-js')
var Report = require('fluentreports')
app.use(Express.static(path.join(__dirname, 'dist/spa'), {index: 'index.html'}))
io.set('origins', 'http://localhost:3000')
let connectedusers = []
let allusers = []
let index = 0
app.use(Express.json())
app.use(cors());
io.on('connection', function (socket) {
console.log('a user connected');http.listen(3000, function() {
http.listen(3000, function() {
console.log('Listening on ' + 3000);
});
Quasar引导套接字.io文件:
import Ioclient from 'socket.io-client'
export default ({ Vue }) => {
Vue.prototype.$Socket = new Ioclient("http://192.168.2.193:3000"/*"192.168.2.193"*//*, {
reconnection: true,
reconnectionDelay: 1000,
reconnectionDelayMax : 5000,
reconnectionAttempts: Infinity
}*/)
}
quasar.conf.js devServer代码段:
devServer: {
open: true,
port: 3000,
proxy: {
// proxy all requests starting with /api to jsonplaceholder
'/api': {
//target: 'https://bahrepairsystem.herokuapp.com:' + process.env.PORT,
target: 'http://localhost:3000',
//target: 'localhost:' + process.env.PORT,
//changeOrigin: true,
pathRewrite: {
'^/api': ''
},
//secure: false
}
}
},
我的系统现在坏了,所以我真的需要解决这个问题,否则公司会发疯的让它现在工作起来
在服务器中,我将io.origins更改为“:”,正如我再次访问的一些stackoverflow问题中所述
代码段:
io.set('origins', '*:*')
同样,在我的quasar文件中的socket.js引导文件中,我将localhost更改为web套接字启动连接的服务器的ip地址以及端口号。
例如:
然后在quasar.conf.js文件中,我将devServer更改为以下代码。我不得不将devServer更改为在端口8080上工作,因为它需要在与我所读的nodejs服务器不同的端口上运行
代码段:
devServer: {
open: true,
port: 8080,
proxy: {
// proxy all requests starting with /api to jsonplaceholder
'/api': {
//target: 'https://bahrepairsystem.herokuapp.com:' + process.env.PORT,
target: 'http://192.168.2.193:8080',
//target: 'localhost:' + process.env.PORT,
//changeOrigin: true,
pathRewrite: {
'^/api': ''
},
//secure: false
}
}
},
devServer: {
open: true,
port: 8080,
proxy: {
// proxy all requests starting with /api to jsonplaceholder
'/api': {
//target: 'https://bahrepairsystem.herokuapp.com:' + process.env.PORT,
target: 'http://192.168.2.193:8080',
//target: 'localhost:' + process.env.PORT,
//changeOrigin: true,
pathRewrite: {
'^/api': ''
},
//secure: false
}
}
},