54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
const express = require('express');
|
||
const router = express.Router();
|
||
const roomStore = require('../store/roomStore');
|
||
|
||
// POST /api/srs/on_publish - 推流开始回调
|
||
router.post('/on_publish', (req, res) => {
|
||
const { app, stream } = req.body;
|
||
|
||
console.log(`[SRS] 推流开始: app=${app}, stream=${stream}`);
|
||
|
||
// stream 就是 streamKey
|
||
const room = roomStore.setLiveStatus(stream, true);
|
||
|
||
if (room) {
|
||
console.log(`[SRS] 房间 "${room.title}" 开始直播`);
|
||
} else {
|
||
console.log(`[SRS] 未找到对应房间,streamKey=${stream}`);
|
||
}
|
||
|
||
// SRS 要求返回 code: 0 表示成功
|
||
res.json({ code: 0 });
|
||
});
|
||
|
||
// POST /api/srs/on_unpublish - 推流结束回调
|
||
router.post('/on_unpublish', (req, res) => {
|
||
const { app, stream } = req.body;
|
||
|
||
console.log(`[SRS] 推流结束: app=${app}, stream=${stream}`);
|
||
|
||
const room = roomStore.setLiveStatus(stream, false);
|
||
|
||
if (room) {
|
||
console.log(`[SRS] 房间 "${room.title}" 停止直播`);
|
||
}
|
||
|
||
res.json({ code: 0 });
|
||
});
|
||
|
||
// POST /api/srs/on_play - 观看回调 (可选)
|
||
router.post('/on_play', (req, res) => {
|
||
const { app, stream } = req.body;
|
||
console.log(`[SRS] 观众进入: app=${app}, stream=${stream}`);
|
||
res.json({ code: 0 });
|
||
});
|
||
|
||
// POST /api/srs/on_stop - 停止观看回调 (可选)
|
||
router.post('/on_stop', (req, res) => {
|
||
const { app, stream } = req.body;
|
||
console.log(`[SRS] 观众离开: app=${app}, stream=${stream}`);
|
||
res.json({ code: 0 });
|
||
});
|
||
|
||
module.exports = router;
|