Client -> CreateRoomRequest (null)
Server -> CreateRoomResponse(result, message, roomID)
失败: result = ERROR, message = "<出错原因>"
成功: result = SUCCESS, message = "", roomID = <有效的roomID>
Client -> JoinRoomRequest(userName, roomID)
Server -> JoinRoomResponse(result, message, roomID)
失败: result = ERROR, message = "<出错原因>"
成功: result = SUCCESS, message = ""
Server -> StartGameResponse(redPlayerName, blackPlayerName)
redPlayerName: 红方的玩家名
blackPlayerName: 黑方的玩家名
Client -> MovePieceRequest(roomID, userName, from, to)
roomID: 房间号
userName: 玩家名
from: 棋子的起始位置
to: 棋子的目标位置
注: 服务器对请求的合法性进行检查(如:该位置是否允许移动\是否轮到该玩家等), 若请求合法
Server:
向移动棋子的玩家发送:
MovePieceResponse(result, message)
若移动成功: result=SUCCESS
若移动失败: result=ERROR, message="<出错原因>"
若移动成功:
向另一玩家发送:
MovePieceResponse(result, message, from, to)
若移动成功: result=SUCCESS, from=棋子的起始位置, to=棋子的目标位置
Server:
向所有玩家发送 GameOverResponse(winner), 断开 Socket 连接