如何使用与Netlify配合使用的express实现套接字IO



这是3个主要文件,但我不确定如何实现与netlify一起工作的套接字IO。我正在尝试将一个websocket侦听器添加到我的express服务器。我该怎么做?

routes.js

const users = require('./controllers/users');
const posts = require('./controllers/posts');
const files = require('./controllers/files');
const comments = require('./controllers/comments');
const chatroom = require('./controllers/chatroom');
const { jwtAuth, postAuth, commentAuth } = require('./auth');
const router = require('express').Router();
// Authentication routers
router.post('/login', users.validate(), users.login);
router.post('/register', users.validate('register'), users.register);
router.post('/forgotPassword', users.forgot);
router.post('/updatepassword', users.updatepassword);
router.post(
'/changepassword',
users.validate('changepassword'),
users.changePassword
);
module.exports = app => {
app.use('/.netlify/functions/app', router);
app.get('*', (req, res) => {
res.status(404).json({ message: 'not found' });
});
app.use((err, req, res, next) => {
if (err.type === 'entity.parse.failed') {
return res.status(400).json({ message: 'bad request' });
}
next(err);
});
};

app.js

const express = require('express');
const serverless = require('serverless-http');
const morgan = require('morgan');
const cors = require('cors');
const expressValidator = require('express-validator');
const passport = require('passport');
const localStrategy = require('./auth/local');
const jwtStrategy = require('./auth/jwt');
const app = express();
const mongoose = require('mongoose');
const config = require('./config');
const connect = url => {
return mongoose.connect(url, config.db.options);
};
if (require.main === module) {
connect(config.db.prod);
mongoose.connection.on('error', console.log);
}
app.use(cors());
app.use(express.json());
app.use(expressValidator());
app.use(morgan('common'));
app.use(passport.initialize());
passport.use(localStrategy);
passport.use(jwtStrategy);
require('./routes')(app);
module.exports.handler = serverless(app);

index.js

const app = require('./app');
const mongoose = require('mongoose');
const config = require('./config');
const connect = url => {
return mongoose.connect(url, config.db.options);
};
if (require.main === module) {
connect(config.db.prod);
mongoose.connection.on('error', console.log);
}
module.exports = { connect };

如果还需要什么,请告诉我。Netlify让事情变得有点困难,当我上传时,它不起作用。

Netlify不支持套接字编程。https://answers.netlify.com/t/does-netlify-support-websocket-programming/4213/2

最新更新