一个比较抽象的问题,springboot + Netty 的后台管理系统

osc_78246628 发布于 2021/02/24 09:08
阅读 536
收藏 0

如何使用英特尔®oneAPI工具实现PyTorch 优化,直播火热报名中>>>

要做的是一个后台管理系统,有两方面功能,一方面的功能是一般的网页后台,这一部分我用了 springboot + Mybatis 做了一个 Restful 后台。另一方面的功能是监听设备报文,这一部分我用了 Netty 对设备进行监听报文和报文下发。 这个项目我是打包成一个 war 包,然后分了两个端口监听,一个端口是监听网页请求,一个端口是netty专用监听设备 。

目前这两方面的功能都是各干各的,互相间一般不进行通讯,现在遇到一个问题:有一个需求,就是前台能够直接读取并显示设备的数据(之前都是数据存在数据库,然后从数据库取数据),在后台下发以及等待数据返回的时候不影响其他页面的浏览(相当于一个异步请求),这一串需求我实现不了。

因为网页请求的处理都在service和controller,返回的统一的Vo,现在这个需求我倒是借着 redis 做到了在 service 那里跳到 Netty 去下发读取数据的请求报文,但回文在 Netty 解析完了以后,如何再回到 service 层或者 controller 层再返回给前台,这个我不会搞

应该如何实现这个需求呀?有没有什么思路呢?
谢谢大佬们

加载中
2
性感码农
性感码农
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
不会飞的小龙人
不会飞的小龙人

楼主的问题,因该是service层从netty中收到数据后,如何实时返回给前端进行展示;因为netty监听端口,会不定期的收到监听数据。而前端向后端取数据,一般都是http请求到controller>service数据后才会响应展示;如无请求,如何保证netty监听数据实时返回到前端;建议上 websocket 吧,保持长链接状态,,后端有数据后,就会向前端推送;

0
戰五渣
戰五渣

websocket可以实时推送数据

0
MZHS
MZHS

我猜测你现有的结构是netty负责请求和接收硬件设备数据,都是异步的,不是请求立即返回数据,而是发送请求给设备,设备返回数据给netty监听的某个端口,你现在是通过数据库或者 redis  读取数据,但是这个数据有个问题,他不是新鲜的,用户看到的不是个实时的数据
你现在想做成,通过网页请求直接读取到设备的最新数据,service层可以直接调用netty给设备发送请求,无法做到netty得到数据后返回给controller

可以定义一个结构用来存储数据以及数据是否返回,在service层调用请求后,循环访问该结构直至得到数据返回为true时返回给controller

MZHS
MZHS
或者用websocket,如果只是想做成http协议刷新数据,可以用上面的方案试试
-1
石头捡到布
石头捡到布

你这个就是netty和spring的整合,简单一点你可以直接在netty的handler中使用SpringUtil然后调用业务方法,先将需求做个简单的实现

-1
sprouting
sprouting

有点没看明白,你的意思是你已经读取到了nettty中的数据,现在要返回到service层?

不是专门有一个map存储你的netty连接的映射吗,设备id - 连接,你直接通过设备id就取到了这个连接,然后进行操作,这里不都是连着的操作?怎么会跳来跳去呢?

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部