【发布时间】:2019-02-22 00:02:13
【问题描述】:
我在 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
})
在我的客户中(反应)
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",
【问题讨论】:
-
您是否在生产端口中提到了您的端口号?
-
const socket = io('http://{你的机器的 ip}:4001')
-
@SantoshShinde 是的,我就是这么做的。我是否必须在 node.js 中设置反向代理或类似的东西?
-
你能添加你的客户端的 package.json(react) 吗?
标签: node.js sockets express socket.io netlify