通用的語言有很多種,例如英語和中文,在網絡的通訊中,通用的協議有很多,其中http是被最廣泛使用的。如果是私有的協議,那就只能自己設計了。
用http是最方便的,如果是私有協議,包含協議的封裝和拆解,工作量大,前端程序員和后端程序員都要增加很多額外的工作量。而且私有協議對程序員的要求高,不適合從web網站轉過來的開發者。除非是手游,不然用http就好了。
(2)app和服務器通訊使用長連接還是短連接?
假設現在通過手機撥打另外一個人的手機,手機通話費用非常便宜(甚至可以忽略),但是有兩個注意的地方:
1.一台手機同一時間只能接聽一個電話。
2.一台手機接聽電話前非常麻煩,要撥號啦,要等接聽,這需要一段時間。
app和服務器通訊使用長連接還是短連接這個問題,可以等同於上面電話模型,是一直保持着通話,還是有需要時才撥號通話這個問題?
2)app和服務器通訊使用長連接還是短連接?
假設現在通過手機撥打另外一個人的手機,手機通話費用非常便宜(甚至可以忽略),但是有兩個注意的地方:
1.一台手機同一時間只能接聽一個電話。
2.一台手機接聽電話前非常麻煩,要撥號啦,要等接聽,這需要一段時間。
app和服務器通訊使用長連接還是短連接這個問題,可以等同於上面電話模型,是一直保持着通話,還是有需要時才撥號通話這個問題?
當app和服務器通訊使用長連接,就相當於一直保持着通話,服務器能保持的通訊數量有限,如果通訊滿了,那其他app就不能和服務端通訊了。這種通訊方式,多數是使用socket或websocket連接長時間連接,對程序員的要求比較高,開發比較困難,除了手游和聊天推送服務外,不建議使用。
當app和服務器通訊使用短連接,就相當於需要時才撥號通話。這種通訊方式,配合http協議,是現在主流的通訊方式,開發效率高,有大量的第三方資源,使用非常廣泛,推薦使用這種方式。
當app調用api的時候,只需要明確下面3點:
1.這個api是干啥的(櫃員機例子中,是取款功能,還是查詢余額,還是轉賬)
2.知道要輸入什么(櫃員機例子中,取款要輸入金錢)
3.知道結果是什么(櫃員機例子中,取款是成功還是失敗)
至於api內部是怎么處理的,app根本無需理會。
api,一般是以http的形式調用的,通過http傳入參數,返回結果。其中,結果一般是以json格式返回的,因為json格式被眾多計算機語言支持,而且省流量。
