最近在做监控的项目,想实现服务端向浏览器端推送实时监控的消息,好像常规的做法是轮询到服务端取数据,但是这种做法存在实时性不高、服务器端压力大的缺陷,不知道有没有实现过采用服务器端推送的方式,跪求指导!
看客户端与服务器持续同步解析(轮询,comet,WebSocket)中的评论:
赌神:
我做体育比分网五年了,以上各种方式方法 我都尝试过了并且部署在生产环境中测试 --
无论是对Browser和Server端的性能、数据即时性要求,个人认为最适合的就是你认为"古老的轮询"方式,即Ajax定时轮询服务器!!!
由于体育比分具有时效性质,例如红牌、犯规等等数据,必须实时同步赛场数据(比电视直播快十秒)。
我是这样设计的 -- 每两秒请求一次服务器update.txt文件,该文件是由服务器数据库的触发器监视数据库的插入、更新事件生成当前的时间戳(例如12973762621这样的数字),而这11个字节用以标识服务器有新的数据,然后客户端比较上一次的请求数字不同,则ajax再请求update.xml文件获取新数据更新...
多年的实践经验、事实告诉我,这种方式无论是对于时下五花八门的浏览器,还是入门级的服务器硬件配置是最适合的!!!
可能你有不同的意见,但建议你在实际项目中用各种方法测试应用,然后观察Browser和Server的开销,再总结一下吧。
使用Comet的方式就好了,实现也挺简单的,Websocket的话,还是太难了,C#里面也不好实现。
记得在SliverLight中有更好的解决方案,楼主可以查一下。
wcf有个双工实现推送,不知道asp.net下HTTP可不可以实现
前段时间研究了一下goeasy,代码简洁易读,服务稳定。后台推送只需要两行代码, js前端推送也只需要3,4行,而且文档齐全,还提供了后台查询信息收发情况,所以我觉得GoEasy推送服务是个不错的选择。官网: http://goeasy.io/