日期:2014-05-17  浏览次数:20555 次

asp.net后台跑一个服务,有数据过来时在页面弹窗,求合理思路
一个动车相关的B/S平台,现在给了个新的功能需求:当客户端浏览器访问服务器的index.aspx页面时,服务器开一个来车提醒的服务(可单独写个winform进行监听),这个服务为一个socket监听,由铁轨上的硬件设备采集后发来socke消息,当接收到消息后,通知客户端浏览器弹窗alert之类等等(不刷新页面)

由于楼主之前socket都是做的C/S模式下的,直接在B/S上做这样的功能还没有比较靠谱的思路,也不知道成熟的案例做类似的功能是怎样的方案(比如邮箱功能,邮箱页面发现有新邮件过来时,“收件夹”几个字会加粗等等提示)

暂时自己能想到的方案是:单独写一个winform放着服务器开机启动进行socket监听,当前端设备发来消息并且winform服务接收后,写入数据到数据库或写到服务器本机上的一个文件中,然后客户端浏览器通过js的setTimeout定时循环进行jquery ajax请求后台一般处理程序ashx来读数据库或文件,当读取到有数据时再输出到客户端,这个方案时候有可行性呢?

oracle数据库与网站都部署在同一服务器上,这个B/S平台只涉及一个动车站点的检车组使用,用户大概20-30个

求做过类似功能的朋友或有思路的大神指导下

------解决方案--------------------
你的方案完全可行, 我建议你还是把数据插入到数据库, 一方面比较好读出来, 另一方面数据库的效率比IO操作要高, 提高性能
------解决方案--------------------
这个需求 主要 难点 应该在 Server 主动推送消息 到 Browser .
SignalR