Я занимаюсь разработкой приложения, которое может работать на нескольких платформах (например, windows, macintosh, android, iphone), но которое взаимодействует с данными, хранящимися и обрабатываемыми на одном центральном сервере.
В основном:
Сервер содержит состояние мира, включая активных клиентов, их сущность в мире и правила рендеринга мира с точки зрения этой сущности.
Клиенты хранят ссылку на эту сущность и отправляют запросы на сервер для обновления ее состояния и получения визуализации на основе их сущности.
Мой самый сильный язык - C #, поэтому я бы предпочел написать сервер, используя это.
Я знаю, что мне нужно будет разработать собственный синтаксис команд, который может интерпретироваться сервером и быть универсальным для всех клиентов. Чего я не знаю, так это многого о практической реализации кодирования сервера, только о высокоуровневом представлении о том, что необходимо.
Можно ли использовать API сокетов .Net с клиентами сокетов, отличными от .Net? Это даже правильный вопрос?
В основном я хотел бы знать, как лучше всего отправлять и получать данные структурированным способом, но не зависящим от платформы.
Пример данных, необходимых для запроса, будет выглядеть примерно так:
Сущность: [Имя сущности]
RequestType: [Request Type] (допустим, это команда действия)
ActionType: [Тип действия]
ActionProp1: [Свойство Action]
.
,
или
Сущность: [Имя сущности]
RequestType: [Тип запроса] (скажем, запрос отрисовывается)
RenderDimX: [X Размер визуализации]
RenderDimY: [Y измерение Render]
На самом деле я еще не спланировал синтаксис запроса, так что не критикуйте:)
Это именно то сообщение, которое я хочу отправить от клиента к серверу.
Так как мне настроить сервер C # для обработки клиентов, которые будут отправлять сообщения такого типа? Или я все об этом говорю не так?
Спасибо!