gpt4 book ai didi

node.js - socket.io 连接在生产环境中失败,在 localhost 中工作

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:34 24 4
gpt4 key购买 nike

我在 server.js 中有这个

//socket io config
const server = require('http').createServer(app)
const io = require('socket.io')(server)
io.on('connection', function (socket) {
socket.on('SOCKET_COMMENT_RECEIVED', ({ notification }) => {
io.emit(`SOCKET_COMMENT_RECEIVED`, notification)
})
//and many more
})

在我的客户端( react )

import io from 'socket.io-client'
const socket = io('localhost:3001') // working in localhost

在我的产品中我会进行此检查

let socket = io('localhost:3001')
if(process.env.NODE_ENV === 'production') { socket =
io('https://api.example.com:3001')
}

为什么会这样呢?我不认为这是 cors 问题,因为我已经这样做了

app.use(cors({
origin: true,
credentials: true
}))

我的 package.json 依赖项

"socket.io": "^2.1.1",
"socket.io-client": "^2.1.1",

最佳答案

在您的服务器代码中,请添加以下行

io.set('origins', '*:*');

所以你的代码将是

  //socket io config
const server = require('http').createServer(app)
const io = require('socket.io')(server)
io.set('origins', '*:*');
io.on('connection', function (socket) {
socket.on('SOCKET_COMMENT_RECEIVED', ({ notification }) => {
io.emit(`SOCKET_COMMENT_RECEIVED`, notification)
})
//and many more
})

更多帮助请关注this教程&this问题。

源代码已开放here .

希望这对你有帮助!!

关于node.js - socket.io 连接在生产环境中失败,在 localhost 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52378299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com