import SystemConst from '@/utils/const'; import Token from '@/utils/token'; import { downloadObject } from '@/utils/util'; import { Col, Input, Modal, Row } from 'antd'; import { EventSourcePolyfill } from 'event-source-polyfill'; import { useEffect, useState } from 'react'; interface Props { data: any; close: () => void; } const Publish = (props: Props) => { const activeAPI = `/${SystemConst.API_BASE}/media/gb28181-cascade/${ props.data.id }/bindings/publish?:X_Access_Token=${Token.get()}`; const [count, setCount] = useState(0); const [countErr, setCountErr] = useState(0); const [flag, setFlag] = useState(true); const [errMessage, setErrMessage] = useState([]); const getData = () => { let dt = 0; let et = 0; const errMessages: any[] = []; const source = new EventSourcePolyfill(activeAPI); source.onmessage = (e: any) => { const res = JSON.parse(e.data); if (res.successful) { dt += 1; setCount(dt); } else { et += 1; setCountErr(et); setFlag(false); errMessages.push({ ...res }); setErrMessage([...errMessages]); } }; source.onerror = () => { source.close(); }; source.onopen = () => {}; }; useEffect(() => { getData(); }, []); return (
成功: {count}
推送通道数量: {props.data?.count || 0} 已推送通道数量: {countErr + count}
{!flag && (
)}
); }; export default Publish;