Heroku上的Socket.IO/Express/Nuxt?
我已经使用socket.io编写了一个通用Nuxt聊天应用程序。这是我第一次深入研究WebSocket和后端。我是一个初级前端开发人员。所以在localhost上,一切都很完美。但当我在heroku上部署应用程序时,会出现以下错误: 得到 网络::错误连接被拒绝 在socket.js文件中,我将connection属性设置为localhostHeroku上的Socket.IO/Express/Nuxt?,heroku,socket.io,nuxt.js,Heroku,Socket.io,Nuxt.js,我已经使用socket.io编写了一个通用Nuxt聊天应用程序。这是我第一次深入研究WebSocket和后端。我是一个初级前端开发人员。所以在localhost上,一切都很完美。但当我在heroku上部署应用程序时,会出现以下错误: 得到 网络::错误连接被拒绝 在socket.js文件中,我将connection属性设置为localhost 也许我应该用heroku期望我的东西来代替它?UPD!我刚刚用heroku应用程序的网址添加并替换了属性连接的值:“”,它可以工作,但是如果我将替换我的应
也许我应该用heroku期望我的东西来代替它?UPD!我刚刚用heroku应用程序的网址添加并替换了属性连接的值:“”,它可以工作,但是如果我将替换我的应用程序的名称,那么地址也将被替换,该怎么办。你们知道解决方案吗?在这种情况下,你们应该使用
env
变量,这些变量可以在本地机器和Heroku环境中读取(在这种情况下称为config vars
),你们有反向代理吗?
index.js
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')
const { app, server } = require('./app')
let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')
async function start() {
const nuxt = new Nuxt(config)
const { host, port } = nuxt.options.server
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
} else {
await nuxt.ready()
}
app.use(nuxt.render)
server.listen(port, () => {
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
})
})
}
start()
socket.js
import Vue from 'vue'
import VueSocketIO from 'vue-socket.io'
export default function({ store }) {
Vue.use(
new VueSocketIO({
debug: false,
connection: 'http://localhost:3000',
vuex: {
store,
actionPrefix: 'SOCKET_',
mutationPrefix: 'SOCKET_'
}
})
)
}
app.js
const app = require('express')()
const server = require('http').createServer(app)
const io = require('socket.io')(server)
const users = require('./users')()
const m = (name, text, id) => ({ name, text, id })
io.on('connection', socket => {
socket.on('userJoined', (data, cb) => {
if (!data.name || !data.room) {
return cb('Данные некорректны')
}
...