天天看點

P2P之我見,關于打洞的學問-------伺服器架構

P2P伺服器要處理的邏輯大概有以下幾點:

登入:使用者唯一的UDID登入。

比對:将同時比對的使用者轉到連接配接的過程。

連接配接:使用者間發起的連接配接過程。

檢測:檢測使用者可否支援打洞。

中轉:對不能打洞的使用者間資料進行中轉。

系統業務層要建立幾個緩存池:

使用者登入緩存池:login user pool;

業務層的比對緩存池:scratch pool。

建立連接配接緩存池:connetion pool;

當使用者A點選比對的時候,服務端收到使用者比對請求,首先查詢有無其他使用者在進行比對,如果沒有就将A放進比對池,如果有假設是B,就在AB間建立連接配接,同時傳回AB。

AB得到對方的資訊後,依據伺服器傳回的連接配接類型進行連接配接操作。如果是打洞則進告訴打洞邏輯,否則進行中轉邏輯。

建立連接配接後,一端丢線,伺服器心跳包時間内偵測到傳回給另一端。

看看我們的成果:

http://v.youku.com/v_show/id_XNjQzNTUwMTU2.html

繼續閱讀