123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { getToken } from '@/utils/auth';
- import { ElNotification } from 'element-plus';
- import useNoticeStore from '@/store/modules/notice';
- // 初始化
- export const initSSE = (url: any) => {
- if (import.meta.env.VITE_APP_SSE === 'false') {
- return;
- }
- url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID;
- const {
- data,
- error
- } = useEventSource(url, [], {
- autoReconnect: {
- retries: 10,
- delay: 3000,
- onFailed() {
- console.log('Failed to connect after 10 retries');
- }
- }
- });
- watch(error, () => {
- console.log('SSE connection error:', error.value);
- error.value = null;
- });
- watch(data, () => {
- if (!data.value) return;
- useNoticeStore().addNotice({
- message: data.value,
- read: false,
- time: new Date().toLocaleString()
- });
- ElNotification({
- title: '消息',
- message: data.value,
- type: 'success',
- duration: 3000
- });
- data.value = null;
- });
- };
|