Ali*_*gan 6 sockets node.js express socket.io netlify
我在 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
})
Run Code Online (Sandbox Code Playgroud)
在我的客户端(反应)
import io from 'socket.io-client'
const socket = io('localhost:3001') // working in localhost
Run Code Online (Sandbox Code Playgroud)
在我的产品中我做了这个检查
let socket = io('localhost:3001')
if(process.env.NODE_ENV === 'production') { socket =
io('https://api.example.com:3001')
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?我不认为这是 cors 问题,因为我已经这样做了
app.use(cors({
origin: true,
credentials: true
}))
Run Code Online (Sandbox Code Playgroud)
我的 package.json 依赖项
"socket.io": "^2.1.1",
"socket.io-client": "^2.1.1",
Run Code Online (Sandbox Code Playgroud)
在您的服务器代码中,请添加以下行
io.set('origins', '*:*');
Run Code Online (Sandbox Code Playgroud)
所以你的代码将是
//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
})
Run Code Online (Sandbox Code Playgroud)
源代码可在此处获取。
希望对你有帮助 !!
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |