Результаты (
русский) 1:
[копия]Скопировано!
Это сильно зависит от моего MessageWriter/читателя serialiser: https://github.com/godarklight/BinarySerialiserВсе TCP-сообщения включают заголовок типа int (4 байта) и int (4 байта) для длины, написанного MessageWriter.Все сообщения DMP построены без заголовка MessageWriter, он добавляется во время отправки.=== Общий формат ===СЕРДЦЕБИЕНИЕ: null - просто отправляет некоторые данные по проводам для сохранения соединения.CHAT_MESSAGE:int - тип сообщения чата (КАНАЛ/ЧАСТНЫЙ)строка - имя отправителяСтрока - КАНАЛ: канал, ЧАСТНЫЕ: PM игрокString - сообщение.PLAYER_STATUS:строка - имя игрокастрока - название суднаСтрока - текст состоянияCONNECTION_END:Строка — Причина отключенияVESSEL_UPDATE: Это сообщение может иметь 2 форматов, но начать то же самое. Сервер только передает это сообщение.int - подпространство idДвухместный номер - планетарий часы.Строка - судно GUID.строка - название судна ссылка тела.float [4] - вращение Кват. -Заменены KMP в методfloat [3] - вектор vesselForwardfloat [3] - вектор vesselUpfloat [3] - угловой скорости.Byte [] - четырехцифрового судно flightState.bool [5] - Данчёрчэид контроля (шестерни, огни, тормоза, sas, rcs)bool - это обновление поверхности.(тип поверхности)Double [3] - поверхности позиции (lat, длинный, альт)Double [3] - вектор скорости поверхности.(Орбитальная тип)Двухместный [7] - параметры орбиты, соответствует порядку орбиты конструктора.Double [3] - позиция дельта между параметрами орбиты и фактическое положениеVESSEL_REMOVE:int подпространствадвойной планетарий часыСтрока vesselIDWARP_CONTROL: Коробление система работает путем ретрансляции сообщений через сервер. Сообщение имеет int, заголовок строки, но содержит различные данные в зависимости от типа сообщения деформации.int - тип сообщения Warpстрока - имя игрока-REQUEST_VOTE типа (в MCW_VOTE) —NULL - просит других клиентов для голосования.-REPLY_VOTE (используется в MCW_VOTE),bool - ответ на голосование.-SET_CONTROLLER,строка — задает мастер деформации-CHANGE_WARP (используется в MCW_LOWEST и MCW_VOTE),bool - физическая деформация (false если нормальный перекос).int - индекс.-REPORT_RATE (используется во всех типах)-float - как быстро мы должны наклонять наши часы, чтобы остаться в синхронизации. подпространство мастер может замедлить подпространства, если люди отстают.-NEW_SUBSPACE (используется в ПОДПРОСТРАНСТВЕ)-Long - подпространство эпохи (часы сервера)Двухместный номер - подпространство эпохи (Планетарий время)WARP_CONTROL: Это сообщение имеет различные форматы, все они начинаются с заголовком же деформации:int - тип сообщения Warpстрока - имя игрока-REQUEST_VOTE (используется в MCW_VOTE),строка - имя игрока. Просит клиента, если они могут покоробиться.-REPLY_VOTE (используется в MCW_VOTE),строка - имя игрока. Просит клиента, если они могут покоробиться.bool - дай warp управления проигрывателя.-SET_CONTROLLER,Строка - новый мастер деформации.-CHANGE_WARP (используется в MCW_FORCE, MCW_VOTE, MCW_LOWEST),bool - физическая деформация.int - индекс.-NEW_SUBSPACE (используется в ПОДПРОСТРАНСТВЕ)-int - подпространство идентификатор.Long - подпространство эпохи (часы сервера).Двухместный номер - подпространство эпохи (Планетарий время).float - скорость подпространства.(НЕ РЕАЛИЗОВАНО), CHANGE_SUBSPACE (используется в ПОДПРОСТРАНСТВЕ) -int - подпространство идентификатор.SPLIT_MESSAGE: Это сообщение приходит в 2 форматах, это состояние отслеживаются на сервере и клиентах. Когда мы заполняем буфер, мы де инкапсулируют и обрабатывать его как другой тип сообщения.-Новое сообщение Сплит-int - длина полного сообщения, byte [] - первый кусок.-Продолжение Сплит сообщение-Byte [] - следующий кусок.=== Только клиент ===HANDSHAKE_REQUEST:int - версия протоколастрока - имя игрокаСтрока - Guid (игрок токена).KERBALS_REQUEST: null. Делает сервер отправить все kerbals к клиенту.KERBAL_PROTO:int - подпространство idДвухместный номер - планетарий часыint - kerbal idСтрока - kerbal ConfigNode данных.VESSELS_REQUEST: null. Делает сервер отправить все суда к клиенту.VESSEL_PROTO:int подпространстваДвухместный номер - планетарий часыСтрока - судно GUIDСтрока - судно ConfigNode данных.SEND_ACTIVE_VESSEL:строка - имя игрокаСтрока - активное судно GUID.SYNC_TIME_REQUEST: long - клиент отправить время (1/4 части допустимое сообщение NTP)PING_REQUEST: long - клиент отправить время=== Только сервер ===HANDSHAKE_REPLY: int - статус подтверждения0 - успех1 - протокола несоответствие2 - плеер уже подключен3 - маркеров несоответствия99 - деформированное сообщениеKERBAL_REPLY:int - подпространство idДвухместный номер - планетарий часыСтрока - kerbal ConfigNode данных.KERBAL_COMPLETE: null - сигнал к клиенту, не не более kerbals, чтобы отправить так он может продолжить подключениеVESSEL_PROTO:int - подпространство idДвухместный номер - планетарий часыСтрока - судно ConfigNode данных.VESSEL_COMPLETE: null - сигнал к клиенту, не нет больше судов, чтобы отправить так он может продолжить подключениеSET_ACTIVE_VESSEL:строка - имя игрокаСтрока - активное судно GUID. SEND_ACTIVE_VESSEL сообщения клиента, передаются по этому типу.TIME_LOCK_REPLY:Long - подпространство эпохи (часы сервера)Двухместный номер - подпространство эпохи (Планетарий время)float - скорость подпространства.SYNC_TIME_REPLY: долго - время клиента сервераLong - сервер получает времяLong - сервер посылает время (3/4 части допустимое сообщение NTP).ПИНГ
переводится, пожалуйста, подождите..
