actor(webref): 优化代码结构和功能
- 注释掉 oauth2.vue 中的 getBackends() 调用 - 修改 sse_views.py 中的消息中心未读消息计数逻辑 - 优化 userNews.vue 中的新闻列表数据加载
This commit is contained in:
@@ -17,6 +17,9 @@ def event_stream(user_id):
|
|||||||
last_db_change_time = cache.get('last_db_change_time', 0)
|
last_db_change_time = cache.get('last_db_change_time', 0)
|
||||||
# 只有当数据库发生变化时才检查总数
|
# 只有当数据库发生变化时才检查总数
|
||||||
if last_db_change_time and last_db_change_time > last_sent_time:
|
if last_db_change_time and last_db_change_time > last_sent_time:
|
||||||
|
if user_id == 1:
|
||||||
|
count = MessageCenterTargetUser.objects.filter(is_read=False).count()
|
||||||
|
else:
|
||||||
count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count()
|
count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count()
|
||||||
yield f"data: {count}\n\n"
|
yield f"data: {count}\n\n"
|
||||||
last_sent_time = time.time()
|
last_sent_time = time.time()
|
||||||
|
|||||||
@@ -221,12 +221,21 @@ import { getBaseURL } from '/@/utils/baseUrl';
|
|||||||
const messageCenter = messageCenterStore();
|
const messageCenter = messageCenterStore();
|
||||||
let eventSource: EventSource | null = null; // 存储 EventSource 实例
|
let eventSource: EventSource | null = null; // 存储 EventSource 实例
|
||||||
const token = Session.get('token');
|
const token = Session.get('token');
|
||||||
|
const isConnected = ref(false); // 标志变量,记录是否已连接过
|
||||||
const getMessageCenterCount = () => {
|
const getMessageCenterCount = () => {
|
||||||
// 创建 EventSource 实例并连接到后端 SSE 端点
|
// 创建 EventSource 实例并连接到后端 SSE 端点
|
||||||
eventSource = new EventSource(`${getBaseURL()}/sse/?token=${token}`); // 替换为你的后端地址
|
eventSource = new EventSource(`${getBaseURL()}sse/?token=${token}`); // 替换为你的后端地址
|
||||||
|
// 首次连接成功时打印一次
|
||||||
|
eventSource.onopen = function () {
|
||||||
|
if (!isConnected.value) {
|
||||||
|
console.log('SSE 首次连接成功');
|
||||||
|
isConnected.value = true; // 设置标志为已连接
|
||||||
|
}
|
||||||
|
};
|
||||||
// 监听消息事件
|
// 监听消息事件
|
||||||
eventSource.onmessage = function (event) {
|
eventSource.onmessage = function (event) {
|
||||||
|
console.log(event.data);
|
||||||
|
|
||||||
messageCenter.setUnread(+event.data); // 更新总记录数
|
messageCenter.setUnread(+event.data); // 更新总记录数
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,8 @@ const getLastMsg = () => {
|
|||||||
params: {},
|
params: {},
|
||||||
}).then((res: any) => {
|
}).then((res: any) => {
|
||||||
const { data } = res;
|
const { data } = res;
|
||||||
console.log(data);
|
if (data) state.newsList = [data];
|
||||||
|
|
||||||
state.newsList = [data];
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default defineComponent({
|
|||||||
// };
|
// };
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getBackends();
|
// getBackends();
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
|
|||||||
Reference in New Issue
Block a user