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
43
| import { getToken } from '@/utils/auth';
| import { ElNotification } from 'element-plus';
| import useNoticeStore from '@/store/modules/notice';
|
| let message = '';
|
| // 初始化
| export const initSSE = (url: any) => {
| 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;
| });
| };
|
|