WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架
一切都很好,直到大約一周前,Any Origin停止為某些(但不是全部)https請求工作。 碰巧的是,那段時間我在Play上獲得了一些經驗! 和Heroku,這使我能夠快速構建一個名為Anyever Origin(.org!)的Any Origin的開源克隆(在github上 )。 對于那些不熟悉Play的人! 和Heroku,讓我簡單介紹一下:
Heroku是領先的PaaS提供商之一。 PaaS只是一種奇特的說法,“讓我們來管理您的服務器,可伸縮性和安全性……您只是專注于編寫應用程序?!?Heroku最初是一家Ruby商店,但現在支持多種編程語言和平臺,包括python,java,scala,javascript / Node.Js。 它們最酷的一點是,它們提供了大量的插件 ,從簡單的東西(如“自定義域”和“日志記錄”到調度,電子郵件,SMS),再到更強大的插件(如Redis , Neo4j和Memcached) 。
現在在應用程序部分,我最近找到了Play! 框架 。 Play是一個Java / Scala框架,用于編寫Web應用程序,該框架借鑒了Ruby on Rails / Django的思想,即為您提供完整的預構建解決方案,讓您專注于編寫實際的業務邏輯,同時允許您以后自定義所有內容需要。 我鼓勵您在Play!的首頁上觀看12分鐘的視頻,該視頻顯示了如何從頭開始實現強大的功能。 玩! 在Heroku中是本地支持的,因此,要使生產應用程序運行,實際上您需要做的就是:
- 新玩
- 編寫一些業務邏輯(控制器/視圖/無關)
- git init…git提交
- “ heroku應用程序添加”以創建新應用程序(不要忘記添加“ –stack cedar”以使用最新一代的Cedar堆棧)
- “ git push heroku master”上傳您的應用程序的新版本……它是自動構建和部署的。
有了這些工具(實際上只花了幾天的時間我就學會了),我著手構建了Whatever Origin。 處理JSONP請求是一項受IO約束的任務-您的服務器基本上會執行HTTP請求,并在完成后將響應發送給使用javascript / JSON魔術包裝的客戶端。 幸運的是Play!對Async IO的支持確實非常簡單。 看看我的單個get方法 :
public static void get(final String url, final String callback) {F.Promise<WS.HttpResponse> remoteCall = WS.url(url).getAsync();await(remoteCall, new F.Action<WS.HttpResponse>() {public void invoke(WS.HttpResponse result) {String responseStr = getResponseStr(result, url); // code for getResponseStr() not included in this snippet to hide some ugly irrelevant details// http://blog.altosresearch.com/supporting-the-jsonp-callback-protocol-with-jquery-and-java/if ( callback != null ) {response.contentType = "application/x-javascript";responseStr = callback + "(" + responseStr + ")";} else {response.contentType = "application/json";}renderJSON(responseStr);}}); }第一行啟動對請求的URL的異步獲取,然后注冊到完成事件,并釋放線程。 您幾乎可以認為這是Node.Js !
實際上,我花了最長的時間進行開發和調試的是JSONP本身。 我找到的有關該信息的信息以及jQuery的客戶端支持都很難找到,而且我花了幾個小時努力解決過度逃脫的JSON和其他有趣的東西。 完成此操作后,我只是將其推到github,以每年僅$ 7的價格注冊了whatorigin.org域,并用Bitcoin Pie代碼中的whatorigin.org替換了anyorigin.com,瞧,該網站重新上線了。
我真的很喜歡在2011年開發網站–整個行業都在致力于使個人/小型創業公司輕松開發出令人贊嘆的產品。
參考: WhateverOrigin –與Heroku和Play對抗相同的原產地政策! 來自JCG合作伙伴 Ron Gross的A Quantum Immortal博客的框架
翻譯自: https://www.javacodegeeks.com/2012/01/whateverorigin-combat-same-origin.html
總結
以上是生活随笔為你收集整理的WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次性纸碗可以放微波炉加热吗 一次性纸碗
- 下一篇: OSGi简介–模块化Java