服務(wù)端與客戶端之間實現(xiàn)通信的方式有哪些?
提者問的意圖不是太清晰。
1. 從主體方案的角度,一般分為B/S和C/S:
基于瀏覽器http協(xié)議和ajax技術(shù)的通信方案,統(tǒng)稱為browser/server模式,一般直接面向業(yè)務(wù)邏輯,實現(xiàn)中也主要基于session概念,不面向連接。
采用socket編程實現(xiàn),基于client/server概念的應(yīng)用,一般面向連接相關(guān)概念(注:udp無連接,但一般應(yīng)用也會模擬連接,并進行連接管理,并不會只是簡單的sendto/recvfrom)。
websocket從本質(zhì)上,他是給瀏覽器技術(shù)方案提供的c/s支持,服務(wù)器和客戶端之間支持了通信和身份保持,且s可以主動發(fā)起通知了。
2. 從技術(shù)學(xué)習(xí)的角度:
b/s主要理解request/response/session概念,熟悉ajax、html5等入手。后端學(xué)習(xí)php或jsp,javascript及jquery等,熟悉相關(guān)技術(shù)方案和框架。一般上手以后熟悉了,后續(xù)的相關(guān)領(lǐng)域技術(shù),都會容易掌握和熟悉。能有機會實戰(zhàn)或有人帶,就能熟悉大并發(fā)和海量數(shù)據(jù)的處理。
c/s相對涉及的要更廣泛一些。我是做游戲的,其它領(lǐng)域不好臆測,拿游戲來說。這時候,前后端是兩條差異蠻大的路。前端一般偏圖形、物理的研究、學(xué)習(xí),熟悉圖形學(xué)原理,矩陣數(shù)學(xué)、相應(yīng)的圖形api等(當然,目前有很多成熟或開源引擎,已經(jīng)極大的降低了相應(yīng)的門檻)。后端一般需要自己動手構(gòu)建分布式體系結(jié)構(gòu),處理大量并發(fā),異步邏輯,解決同步模型,巨量用戶數(shù)據(jù)。不過,這一切始于socket學(xué)習(xí),踏上了這條路,自己的學(xué)習(xí)加上有人帶路,一切都會成長的很快。
目前想到的主要就是這些。問題雖然很混亂和初級,因為不具象反而挺麻煩的。對于題主來說,腳踏實地的選擇一個方向入手,后面的大道,入行后就會自然的展開,實實在在且清晰明確。
最后謝謝悟空問答的邀請!