听书阁_书友最值得收藏的免费小说阅读网

第七十四章 再改豌豆射手-《末日編程者》


    第(1/3)頁

    表面上,韓海是進入了修煉,其實他是打開了數據模型庫,觀察起來這次的收獲,他記得在殺死李易龍后,數據模型倉庫傳來響聲,是有東西入庫了。

    韓海在倉庫中找尋了半天,終于找到了新增的這個數據模型,這是一張白色的卡片,卡片中央寫著SYSTEM,而在卡片偏上的位置寫著socket.io,當看到這個模型的時候,韓海的心情非常愉快,這個數據模型明顯是一個系統的類庫,而且它的功能也是非常強大的。

    可以說句毫不夸張的話,如果沒有socket,那么互聯網就不存在。

    沒錯socket就是網絡傳輸中嵌套字協議,這種協議說白了就是給你一個定量字節的傳輸空間,負責電腦終端間連線的一種協議方案。

    而目前大規模應用于瀏覽器的協議,就是基于TCP長連接開發出的http協議,這是一種短連接的協議,原理很簡單一次請求一次返回,然后就斷開連接,而大家使用的聊天軟件,大部分是使用TCP長連接協議作出的軟件。

    韓海現在擁有了socket系統庫后,就可以編寫一套IM系統,也就是及時聊天系統(Instant  Messaging),這樣也就可以解決團隊協作中,通訊不方便的問題。

    末日之后因為電力設施都被怪物破壞或者失去維護,各種移動終端都失去了作用,現在大家通訊全靠吼,這對于信息的傳播非常不利,而當韓海有了這一套socket系統庫后,他就可以基于自己的系統開發出多人聊天的軟件了。

    而且開發出這種軟件后,韓海不僅僅可以自己人使用,也可以販賣給其他人使用,并且賺取錢財,這樣既方便了自己斂財,又給社會提供了服務,一舉多得。

    韓海想到這里,不禁笑了笑,隨后韓海新建了一個項目,然后又新建了6個文件夾,分別是protocol、common、core、server、main、utils,這些文件夾對應了協議模塊、通用模塊、核心模塊、服務模塊、主函數文件夾、工具類存放文件夾。

    這一次韓海編寫的是一個稍微大些的項目,其中使用字符數,他預計估計了下,起碼要使用20-30萬之多,也就是要耗費20-30萬字符能量,可見一個聊天系統的服務器實現的難度,并且寫完服務器韓海還需實現客戶端的編寫,這里也需要耗費大量的字符能量。

    不過在守城戰后,韓海字符能量達到了200萬,目前來說還是夠他揮霍的,所以他目前不必為字符能量擔憂。

    然后韓海開始了漫長的編寫,不過好在的是,聊天系統他之前在公司的時候寫過一套,現在也能回想起來,復寫一遍就好了。

    韓海所寫的及時聊天系統,主要分三層:協議層、功能層和業務層。

    協議層主要是定義服務器和客戶端傳輸數據包時候的約定,這一層還分2層,第一塊是通訊協議層,第二塊是業務協議層。

    通訊協議層:主要是通用化的加密解密方案,握手、重連、斷開等約定。

    業務協議層:主要是處理某個用戶要與某人通訊,然后給某人發出消息,斷開等等約定。

    協議說白了也算一種數據結構,只不過他們傳播的方式是流狀的,而代碼去解析也需要逐步去解析,就好比寫信的時候,我要告訴你一件事情,但是我雷打不動,信的第一行寫的肯定是你的名字,后面才跟著是我寫給你的內容。

    當然沒有寫信那么簡單,我們可能在主消息體前面加了很多標示,就像之前所說的,第一層用兩個字節使用IM標識,這個是屬于這個通訊系統的占位符,第二層用四個字節傳入了一個時間,第三層用1個字節傳了一個短整形7,標識這個文本的業務是傳輸消息,第四層用了四個字節放了一個長整形標識之后消息體的字節長度,第五層才能使用剛剛讀到的消息體長度,才可以拿到定長的消息體。

    在這之后,還需要解碼消息體,得到真正的消息,不過這個東西一般寫在客戶端,服務器只負責傳輸就好了。

    當然以上的描述只是個栗子,而真正應用中比這些數據更多、更復雜,比如一個用戶傳遞消息給另一個用戶,如果要交給另一個用戶,不僅服務器要識別這個消息體發送人的身份,還要識別傳遞給那個人的是否存在,能不能發送等等。

    功能層主要就是進行數據的一些處理,比如以下代碼:
    第(1/3)頁

主站蜘蛛池模板: 沅陵县| 内丘县| 建平县| 都安| 彭水| 格尔木市| 平远县| 杂多县| 柞水县| 临夏县| 融水| 新源县| 清原| 奈曼旗| 陈巴尔虎旗| 兴化市| 民丰县| 兴业县| 寿宁县| 新晃| 邳州市| 武城县| 富平县| 台江县| 巧家县| 喀喇沁旗| 云南省| 承德县| 鹰潭市| 繁昌县| 松阳县| 百色市| 上饶市| 中阳县| 礼泉县| 德格县| 衢州市| 博兴县| 满城县| 重庆市| 河南省|