-:后端使用ssemiter保持客户端链接:http
这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。
-:前端使用vue3+ansi_up做页面展示
第一: 刷新页面导致session问题
可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java的session的数据ssemiter给前端,前端自动接着获取日志。
ssemiter:详情自行百度ssemiter相关【session存储链接,定时任务线程池定时触发】
第二:
读取日志文件的时候需要逻辑:
第一:记录当前point
如果pint!=当前日志长度:要么刷新日志了,要么更新日期重新生成日志了
point需要记录,最好是记录在redis中--带开发,防止分布式部署导致日志获取错乱问题。
如果是刷新,防止一次读取太多数据,默认从倒数500行开始。