我正在使用nextjs在一个web应用程序中实现pusher。它在我的开发环境中按预期工作。但是当我将它部署到vercel时,它不能正常工作。只有在浏览器中刷新页面时才能看到结果。
这是客户端的实现:
useEffect(() => {
const pusher = new Pusher(`${process.env.PUSHER_KEY}`, {
cluster: `${process.env.PUSHER_CLUSTER}`,
useTLS: true
});
const channel = pusher.subscribe('franks-auto-spa');
channel.bind('cancel-wash', data => {
console.log(data.date);
removeWash(data.date);
});
}, []);
下面是API的实现:
export default async (req, res) => {
const connection = await mysql.createConnection(process.env.DATABASE_URL);
console.log(req.body.date);
const result = await connection.query('DELETE FROM ongoing WHERE date = ?', [req.body.date]);
console.log(result);
const pusher = new Pusher({
appId: `${process.env.PUSHER_ID}`,
key: `${process.env.PUSHER_KEY}`,
secret: `${process.env.PUSHER_SECRET}`,
cluster: `${process.env.PUSHER_CLUSTER}`,
useTLS: true
});
pusher.trigger('franks-auto-spa', 'cancel-wash', req.body);
res.json({message: 'Wash deleted deleted...'});
}
我是否缺少Vercel中的任何配置?
3条答案
按热度按时间7kqas0il1#
我也遇到过这样的问题,一两次; Vercel在一小段时间后超时。(10秒的爱好)所以使用数据库与Vercel可能是不会飞。你有没有试过转换到Pro计划?或者您可以切换到Heroku,它不仅有更长的超时时间(30秒),而且还有supports websockets。
vuv7lop32#
很抱歉我回复晚了。我也是刚知道。只需添加await即可防止无服务器功能被关闭!
到
mspsb9vt3#
对于那些遇到同样问题的人,等待**pusher.trigger()**方法可以解决这个问题。