承接上篇架構設計,本文深入剖析基於 HTTP 推播 的聊天室具體實作細節,涵蓋伺服器核心類設計、協議交互流程與客戶端幀架構。
login、joinchat、showtalk、names、speak、leave 等。用戶 aaa 登入、說話、離開產生請求序列:
/login?name=aaa&passwd=aaa
/joinchat?chaterid=555
/showtalk?chaterid=555
/names?chaterid=555
/speak?chaterid=555
/leave?chaterid=555
實際部署需包含認證 Token;names 請求攜帶 ID 用於更新心跳防超時。
</body></html> 結尾標籤。/login?name=NAME&passwd=PWD,Servlet 驗證後生成 Session ID。/joinchat、/showtalk、/names (攜帶 chaterid)。joinchat 連接存活作為推播通道,其餘兩連接完成即結束。joinchat 連接,客戶端無需輪詢。此設計下,單次登入產生四個子執行緒,僅 joinchat 執行緒持久存活,為推播技術關鍵所在。