[发明专利]一种支持WbApi同时实现推送和跨域的解决方法在审
申请号: | 201711070424.5 | 申请日: | 2017-11-03 |
公开(公告)号: | CN107734053A | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 秦娜;陈永 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;G06F9/54 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 阚恭勇 |
地址: | 250100 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 wbapi 同时 实现 推送 解决方法 | ||
技术领域
本发明涉及计算机技术,尤其涉及一种支持WbApi同时实现推送和跨域的解决方法。
背景技术
目前,很多软件公司以使用免费的第三方工具SignalR实现消息推送,在同一个项目上,SignalR根据网上给出的步骤配置上,基本就可以实现,消息推送或聊天室。根据现在产品的需求,大多数项目都引入接口这个概念。接口在不同的客户端能够提供所有数据的获取和处理,自然而然的也把消息推送这个功能也交给了接口。
一般WebApi在处理跨域问题的时候会在web.config里面加上跨域支持,这种是很粗暴的加上了跨域支持,再加上推送的时候,就会出现无法推送到客户端的问题,当把跨域删除的话,可以进行消息推送,但是客户端无法访问接口。
发明内容
为了解决以上技术问题,本发明提出了一种支持WbApi同时实现推送和跨域的解决方法。将WebApi的跨域和推送同时实现,满足低版本或高版本的WebApi都能实现消息推送。
为了实现接口实现跨域推送,所采用的技术方案是:
一种支持WbApi同时实现推送和跨域的解决方法,主要包括以下内容:
1.推送模块
WebApi引入第三方工具包“SignalR”。实现Hub服务器端代码,Hub支持向发起请求者(Caller),所有客户端(Clients),特定组(Group)推送消息。
2.客户端和服务器端建立连接
服务器端实现Hub服务器端代码后,给客户端提供了与SignalR连接的方法,客户端主动与服务器端建立连接,建立连接后服务器就可以主动推送消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。
3.跨域问题
引入SignalR后,WebApi需要删除web.config中的跨域配置,重写HTTP处理程序—DelegatingHandler,将HTTP响应消息的处理委派给自定义的处理程序。解决跨域冲突问题。
具体操作为:
1)首先安装第三方的包
2)添加继承Hub的SignalR连接类
类里面应该应包括:
2.1)连接:客户端连接服务器,服务器将指定的键(现使用客户端用户Id)和值(客户端的ConnectionID)添加到字典中,推送时使用。本发明采用的是调用客户端的cookie保存为键值对,所以也需要web服务器端的功能支持。
2.2)断开连接:断开连接,移除其键值对。
2.3)推送信息:根据接收方特有信息和推送内容向在线的用户推送实时信息。
3)添加启动类
SignalR有着自己的跨域:在.net framework 4.5和.net framework 4.0中有些不同
SignalR在.net framework 4.5中有一个自己的跨域组件Microsoft.Owin.Cors,在启动设置中添加;
SignalR在.net framework 4.0在App_start文件夹下添加“浏览器可以跨域请求SignalR端点”的配置;
4)在控制器中调用连接类中推送消息的方法;
5)最后一步,就是跨域
API在实现跨域时,使用的在web.config中配置;
在App_start文件夹下添加一个配置文件,用来处理当客户端用$.ajax跨域请求数据时在管道中拦截并修改Request。
跨域文件写好后,在global文件中加入配置:
web端处理方式:
1.js引用
作为客户端要接收服务器的推送,首先要引用signalR.js和服务器端的SingalR自动生成的siganlr/hub桥接
2.获取实例,建立连接
3.接下来就是我们的回调函数,当客户端配置好了,就分别把客户端和服务器发布到IIS上测试。
本发明的有益效果是
1.接口跨域机制不会相互影响:无论低版本还是高版本的WebApi均能支持跨域,并且不需要在web.config中配置,以免影响其他功能的实现。
2.客户端方便调用:web端可正常调用接口,加上部分代码即可与服务器端建立连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711070424.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:压力触控屏及具有该压力触控屏的移动终端
- 下一篇:带有橡皮筋的手机支架