一、swool應用場景
-
與硬件設備連接通訊(定位設備)
-
IM系統(用於直播頁面的聊天通訊)
二、部署圖
三、程序流程
1、用戶業務ID綁定swool動態fd
因爲fd爲動態的,是每次鏈接swool時生成的,發消息的時候需要用到,所以每次建立鏈接時需要跟業務ID進行綁定
2、發送/接受消息
設A用戶給B用戶發消息,用B用戶業務ID去數據庫或者redis反查fd,並使用fd進行發送消息(我這裏發送的是json,這樣就可以發送文字、圖片、文件多種類型),當swool監聽發消息時間,則戶主動推送給B用戶,B用戶獲取到消息並解析信息類型
3、檢測是否有未讀消息
當A向B發送消息,B可以收到消息的前提是B必須在鏈接這swool,但是實際情況下,用戶並不是一直都在鏈接(是允許用戶下線的),所以當鏈接斷開後再次產生鏈接就需要檢測未讀消息,並且發送給自己
三、隨便絮叨
上圖都爲大體的流程圖,在開發中還需要考慮消息存儲時效、好友查詢添加、列表等等功能就不一一細說了,因爲之前對應聊天功能使用過workerman,但是swool是C開發的理論上效率會更高