寫在前面:

  昨天在博客記錄自己抽空寫的一個Socket聊天程序的初始設(shè)計,那是這個程序的整體設(shè)計,為了完整性,今天把服務端的設(shè)計細化記錄一下,首頁貼出Socket聊天程序的服務端大體設(shè)計圖,如下圖:

大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓

功能說明:

  服務端主要有兩個操作,一是阻塞接收客戶端的socket并做響應處理,二是檢測客戶端的心跳,如果客戶端一段時間內(nèi)沒有發(fā)送心跳則移除該客戶端,由Server創(chuàng)建ServerSocket,然后啟動兩個線程池去處理這兩件事(newFixedThreadPool,newScheduledThreadPool),對應的處理類分別是SocketDispatcher、SocketSchedule,其中SocketDispatcher根據(jù)socket不同的請求分發(fā)給不同SocketHandler去處理,而SocketWrapper則是對socket加了一層外殼包裝,用lastAliveTime記錄socket最新的交互時間,SocketHolder存儲當前跟服務端交互的socket集合。

網(wǎng)友評論