这个问题在stackoverflow社区专家中被问过很多次,我发现的大多数问题都没有得到回答或答案不令人满意。
每次我尝试连接到套接字时,都会用不同的ID打印出多个用户,并且每当我向客户发出回信时,我的响应将继续保持3-5-7 ...倍于初始响应,并不断增加。
const express = require('express');
const connectDB = require('./db')
const users = require('./api/users')
const bodyParser = require('body-parser')
const cors = require('cors')
const posts = require('./api/posts')
const http = require("http");
const app = express();
app.use(cors())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
connectDB()
const PORT = process.env.PORT || 5000;
const server = app.listen(PORT, () => console.log(`Server running on port ${PORT}`))
const socketio = require('socket.io')
const io = socketio(server)
const questions = require('./api/questions')(io)
app.use('/api/users', users)
app.use('/api/posts', posts)
app.use('/api/questions', questions)
我在问题路由中打开了一个连接。
在路线内:
....(其他路线)...
module.exports = (io) => {
io.on('connection', (socket) => {
console.log(` with userid : ${socket.id}`)
})
return router
}
据我了解,我的应用程序每次尝试访问服务器时, 生成另一个用户。不确定发射,因为它不断繁殖
import io from 'socket.io-client'
let socket = io('http://localhost:5000')