[發明專利]一種支持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.szxzyx.cn/pat/books/201711070424.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:壓力觸控屏及具有該壓力觸控屏的移動終端
- 下一篇:帶有橡皮筋的手機支架





