基於libevent2.0的ministored的http框架--server端

將Ministored從libevent1.4升級到2.0以後,花了兩天額外的時間來做調試這個http的框架。

 

按照開發的設想,這個ministored支持四個基本的操作put、get、delete、status;在經過幾個版本的改動以後,協議如下:

1)數據通過post的方式提交

2)各個基本操作通過一個自定義的Http的頭method來區分。而client和server之間的傳送的二進制數據通過base64編碼以後的字符串發送。數據附加在post操作提交的字符緩衝區中。

     2.1 put操作需要的數據key value,解碼以後,按照key和value的大小直接二進制拷貝,server並不關心數據的具體類型

     2.2 get操作接收client發送的key,解碼,取出對應的數據以後,base64編碼,發送給client

     2.3 delete操作接收client發送的key,解碼,刪除數據

     2.4 status操作直接返回當前Ministore狀態的描述字符串

3)各個操作的結果通過自定義的響應頭"result"返回

 

下面是部分的代碼,限於篇幅,就不完全展開了。

 

這個server框架不僅適用ministored,可以將它搭配任意的存儲工具來做網絡端的存儲。比如BDB、tokyo cabinet來做一個定製的大容量的緩存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章