首页 新闻 会员 周边

求关于数据推送的解决方案

0
悬赏园豆:50 [已解决问题] 解决于 2016-07-26 10:58

系统结构图

系统结构大概是上图所示,大神来给个解决方案。

什麼江湖的主页 什麼江湖 | 初学一级 | 园豆:116
提问于:2016-07-19 10:04
< >
分享
最佳答案
0

浏览器和webserver用web socket建立链接。

 

another server 写入数据库之后,可以使用消息系统发送一条消息到消息中心。

 

webserver订阅消息中心,接收到推送之后,查数据,并推送到webbrower

收获园豆:20
czd890 | 专家六级 |园豆:14412 | 2016-07-19 12:02

消息系统多得是,redis之类的都可以。支持发布订阅即可

czd890 | 园豆:14412 (专家六级) | 2016-07-19 12:03

@calvinK: 其实简单的处理可以让another server给webserver发一个http请求,但如何触发websocket对应的后台处理代码呢?

什麼江湖 | 园豆:116 (初学一级) | 2016-07-20 15:45

@什麼江湖: websocket库都有现成的api。

比如signalr。看SignalR主动通知订阅者示例

GlobalHost.ConnectionManager.GetHubContextv

czd890 | 园豆:14412 (专家六级) | 2016-07-20 16:32
其他回答(3)
0

你这个要用websocket来实现啊

收获园豆:10
刘宏玺 | 园豆:14020 (专家六级) | 2016-07-19 10:13

 websocket我知道,这里主要问题是:1何时推送,2如何获取要推送的数据

支持(0) 反对(0) 什麼江湖 | 园豆:116 (初学一级) | 2016-07-19 10:15

@什麼江湖: 要么轮询数据库,要么Another Server直接把要推送的数据直接分发个webServer并保存数据库

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-07-19 10:17
0

dwr反向ajax轮询

收获园豆:10
[3] | 园豆:1174 (小虾三级) | 2016-07-19 10:13

能不能详细介绍一下?

支持(0) 反对(0) 什麼江湖 | 园豆:116 (初学一级) | 2016-07-19 10:17

@什麼江湖: 数据获取差不多就是那样,要么轮询数据库,要么插入的同时放入队列或者缓存中,dwr可以把java代码转成伪js函数,这样你前端可以像访问function一样直接访问java类

支持(0) 反对(0) [3] | 园豆:1174 (小虾三级) | 2016-07-19 11:25
0

这个,貌似没啥问题吧?就最后一个webServer要推送信息到浏览器

看你实现咯。

推荐一个 Signalr 给你。.net这块应该算是最好用的了。开发也比较简单。

它有自己的策略,当检测到浏览器支持websocoket就会用websocoket,不能就会用长轮询。以前拿它实现过一个web端的客服工具。

 

收获园豆:10
LoveCoder | 园豆:216 (菜鸟二级) | 2016-07-26 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册