自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hello,服務(wù)端 Swift

移動開發(fā)
自從蘋果官方發(fā)布了一個 Swift 的 Linux 開源版本之后,服務(wù)端 Swift 終于迎來了一個令人激動的前景。我的好奇心終于無法克制,是時候嘗試一下服務(wù)端 Swift 了!

自從蘋果官方發(fā)布了一個 Swift 的 Linux 開源版本之后,服務(wù)端 Swift 終于迎來了一個令人激動的前景。我的好奇心終于無法克制,是時候嘗試一下服務(wù)端 Swift 了!

除了用過幾個 Baas 以外,我沒有任何后端編程經(jīng)驗,但幸運的是開源社區(qū)已經(jīng)提供了現(xiàn)成的框架。我試了一下Tanner Nelson 推薦的 Vapor 框架。它的使用非常簡單,非常適合我當(dāng)前的任務(wù),在這篇文檔中還會使用到 Heroku。我決定使用 Heroku 的原因是我們的后端團隊在使用它,它對于前端來說非常友好。

寫到這里的時候,為了解決 Heroku 框架運行中的幾個小問題,我專門提交了一個 pull request 。如果代碼還沒被合并的話,請設(shè)置你的包管理器從 這里 下載。

安裝

要繼續(xù)本教程,首先,你需要一個 Heroku 賬號 ,并安裝好 Swift Development Snapshot 。寫到這里的時候,在它的正式版中還未包含 swift 包管理器。因此為了使用這個工具,你必須下載開發(fā)版的 snapshot。

開始

我們的目標(biāo)是創(chuàng)建一個簡單的 Swift 服務(wù)器并運行在 Heroku 上。這不需要在 linux 環(huán)境下進行,就像是你在使用本地服務(wù)器。你只消創(chuàng)建一個本地的 Xcode 項目,對項目進行一些設(shè)置,然后就可以在 Swift 包管理器 中運行它。整過過程分為 4 個步驟:

將 main.swift 拷貝根目錄下的 Sources 目錄

創(chuàng)建一個 Package.swift 文件

將 .build 目錄添加到 import paths 

要使用自動補全和語法加亮功能,需要將 Swift 包管理器的 build 目錄提交到 import paths 中。注意,在 import paths 的 Debug 中設(shè)置的 debug 目錄,而 Release 項則輸入 release 目錄。

用 toolchain 運行 Xcode

如果你使用 Xcode 7.3,你可以用 Xcode > Toolchains 菜單開啟一個Xcode 實例,用于打開 swift snapshot。因為我們不能在 Xcode 中進行編譯,我們只能以命令行的方式進行編譯。

編寫服務(wù)器

令我高興的是,為了進行概念驗證,我需要編寫的代碼其實只有寥寥數(shù)行。我啟動和運行服務(wù)器的代碼甚至不到 10 行。

要啟動服務(wù)器,只需在終端中輸入一句命令,:

好了,讓我們打開瀏覽器。我的瀏覽器安裝了 json 插件,你的畫面或許會有不同。

遷移到云上

服務(wù)器在本地順利運行起來了,但如果放到云端則更好。我迫不及待地想將 App 在云上跑起來。對于我來說這是一個全新的挑戰(zhàn),幸運的是,我得到了 Vincent Toms 的悉心指導(dǎo)。

Heroku 的安裝是一件非常愉悅的體驗,幾分鐘后我就創(chuàng)建了一個 Heroku App,接下來我就要上傳我的項目了。

出錯啦

這只是今天的諸多錯誤中的一個。我已經(jīng)預(yù)計到事情不可能一帆風(fēng)順,因此我查看了 Vapor 的文檔,最終發(fā)現(xiàn)問題出在所謂的 buildpacks 上。Heorku 提供了一些標(biāo)準(zhǔn)的 buildpacks,但完全沒有針對 Swift 的 buildpacks。無奈之下求救于開源社區(qū),剛好看到 Kyle Fuller 的 buildpack 。集成它就簡單得多了。

用這個 buildpack 啟動后,App 成功加載,接下來就是訪問它的 URL。

再次出錯

事情不會那么順利的,是吧?經(jīng)過 google 一番,仔細查看了一些例子,我發(fā)現(xiàn)我還差一個 Procfile。瀏覽一下這個文件的內(nèi)容,你就能明白這個文件是干什么用的了。

buildpack 創(chuàng)建了可執(zhí)行文件,但 Heroku 并不知道。通過 Procfile,我們告訴 Heroku 去運行 SwiftServerIO 可執(zhí)行文件。上傳這個 Procfile。

仍然出錯

Heroku 編譯的 2 分支仿佛變得無比漫長。我重新打開了瀏覽器,發(fā)現(xiàn)仍然報錯。

我以為 Heroku 可能還未啟動完成(實際不是),因此我又等了一小會,終于發(fā)現(xiàn)出錯了??蓤?zhí)行文件生成了, process file 也就緒,一定是別的什么地方出問題了。再次 google,一直到我最終發(fā)現(xiàn)我需要設(shè)置 App 的規(guī)模(scale up)。這要使用到 Heroku 的 toolbelt 中的一個簡單命令。

heroku ps:scale web=1

Heroku 在免費情況下只有一個 dyno(Heroku 計費單位,10~50 個請求/秒)。但對于我們的簡單服務(wù)器來說,這也夠了。因此,在我們將 scale web 設(shè)置為 1 個 dyno 之后,再次用瀏覽器查看。

成功了!

成功了!服務(wù)器啟動,出現(xiàn)了萬能的 hello world!經(jīng)過一番歡呼雀躍之后,讓我們真正來問一聲好吧!

響應(yīng)請求

在 main.swfit 文件中添加一小段代碼,讓服務(wù)器在問好的同時能夠因人而異。就微微偷一下懶,新加一個路由,讓服務(wù)器根據(jù)輸入輸出不同的問候語。

一切正常,但根據(jù)一般規(guī)律,我仍然做好了出錯的心理準(zhǔn)備。提交修改,push 代碼到 Heroku。

Say Hello!

大約一份多鐘的編譯之后,在瀏覽器中訪問 URL,服務(wù)器返回了問候語。你可以在這里查看效果 。

接下來是什么?

可以說,服務(wù)端 Swift 的今天離不開社區(qū)強大支持。對于我來說,能夠從云端獲取 JSON 是一個令人興奮的開始,我已經(jīng)迫不及待地想看看接下來還會發(fā)生什么。

當(dāng)然在此之前,我不得不和我在 Intrepid Pursuits 的同事們一起,繼續(xù)編寫一個有一個 iOS App。如果你想了解我的最新動態(tài),請在訪問我的 Github 或者 Twitter。

服務(wù)端 Swift 

附言

在 這里 下載源代碼。

在 Journal 文件夾中,是 step-by-step 指南。

責(zé)任編輯:倪明 來源: CocoaChina翻譯活動
相關(guān)推薦

2012-03-02 10:38:33

MySQL

2013-03-25 10:08:44

PHPWeb

2016-11-03 09:59:38

kotlinjavaspring

2010-08-03 09:59:30

NFS服務(wù)

2021-05-25 08:20:37

編程技能開發(fā)

2010-03-19 18:17:17

Java Server

2022-12-29 08:56:30

監(jiān)控服務(wù)平臺

2009-08-21 15:22:56

端口偵聽

2010-02-24 15:42:03

WCF服務(wù)端安全

2010-03-18 18:09:36

Java Socket

2021-04-26 13:20:06

Vue服務(wù)端渲染前端

2023-08-08 08:17:23

VasDolly服務(wù)端參數(shù)

2011-09-09 09:44:23

WCF

2009-08-21 16:14:52

服務(wù)端與客戶端通信

2009-08-21 15:59:22

服務(wù)端與客戶端通信

2024-03-06 14:58:52

客戶端微服務(wù)架構(gòu)

2009-08-21 15:36:41

服務(wù)端與客戶端

2009-08-21 15:54:40

服務(wù)端與客戶端

2010-03-18 17:47:07

Java 多客戶端通信

2023-03-06 08:01:56

MySQLCtrl + C
點贊
收藏

51CTO技術(shù)棧公眾號