用golang写的帧同步服务器,目标是作为一个可以横向扩展,完全脱离玩法逻辑的帧同步服务器。
go run cmd/example_server/main.gosh cmd/example_client/create_room.shgo run cmd/example_client/main.go -room=1 -id=1go run cmd/example_client/main.go -room=1 -id=2 |-----------------------------message-----------------------------------------|
|----------------------Header------------------|------------Body--------------|
|------Body Length-------|--------Msg ID-------|------------Body--------------|
|---------uint16---------|---------uint8-------|------------bytes-------------|
|-----------2------------|----------1----------|-----------len(Body)----------|
MSG_Connect & C2S_ConnectMsgMSG_Connect & S2C_ConnectMsgMSG_JoinRoomMSG_Connect & S2C_JoinRoomMsgMSG_Progress & C2S_ProgressMsgMSG_Progress & S2C_ProgressMsg 注:广播者收不到这个消息MSG_ReadyMSG_ReadyMSG_StartMSG_Input & C2S_InputMsgMSG_Frame & S2C_FrameMsgMSG_Result & C2S_ResultMsgMSG_ResultMSG_Result或者MSG_Close客户端断开网络连接进入其他流程MSG_Connect & C2S_ConnectMsg **(前提是当前游戏房间还存在)**即可进入房间,服务端会把之前的帧分批次发给客户端。(这里可以考虑改成客户端请求缺失的帧)