我已经尝试从谷歌上找到解决方法,但结果保持不变。
http://localhost:8000/socket.io/?EIO=3&transport=polling&t=MnHYrvR
我试了这个medium里的方法以及其他方法,但结果仍然一样。
对于前端部分,我尝试将socket io放入hook组件内和外,但结果仍然一样。
http://localhost:8000/socket.io/?EIO=3&transport=polling&t=MnHYrvR
这是我从服务器那里得到的代码:
app.prepare().then(() => {
const server = express();
const setServer = require('http').Server(server);
const io = require('socket.io')(setServer)
server.use(bodyParser.json());
server.use(cookieParser());
io.on('connection', socket => {
console.log('socket', socket);
socket.emit('now', {
message: 'zeit'
})
})
server.use(routers)
server.get('*', (req, res) => {
return handle(req, res);
});
server.use( (err, req, res, next) => {
console.log(err)
if(err.name === 'Error'){
res.status(401).send({
title: 'error',
detail: 'Unauthorized Access!'
})
}
})
server.listen(port, err => {
if (err) throw err;
console.log(`> Ready on http://heroku:${port}`)
})
})
.catch(ex => {
console.error(ex.stack);
process.exit(1);
});
来自前端:
//at the top of function
const io = require('socket.io-client');
const socket = io.connect('http://localhost:8000');
console.log('socket', socket);
//in use effect
useEffect(() =>{
socket.on('now', message => {
console.log('message', meesage);
})
})
请帮忙