1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| 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;
| });
| };
|
|