Panda3D的FSM介紹參考這裡。
當程式啟動時,進入Login狀態(ChatRoomMain.py,第43行),顯示Login界面(ChatRoomMain.py,第47行)來輸入 暱稱與連線方式,選擇成為server端(建立聊天室)或是client端(加入),成功建立連線後進入chatRoom狀態 (ChatRoomMain.py,第157行),顯示聊天室介面(ChatRoomMain.py,第55行),連線失敗則仍停留在Login狀態。
於ChatRoom狀態下,當client端失去與server的連線時,回到Login狀態(ChatRoomMain.py,第96行),若server端失去與client的連線則仍停留在ChatRoom狀態。
server端與client端以各別的方式,在ChatRoom狀態下,處理聊天室的文字輸入與顯示流程。server端與client端間的傳輸協定的目標為執行命令的同步--server端與所有client端都顯示相同順序的文字。
- server端收集所有的文字輸入,包含server端與所有client端的文字輸入,再將收集的文字輸入串傳送給所有client,server再將這些收集的文字輸入串顯示於自身gui上。
- client端送出自身的文字輸入給server端,如果收到server傳送的文字輸入串則顯示於自身gui。
詳細的server端與client端間的傳輸協定以及gui設計將稍後說明。
----
沒有留言:
張貼留言