Я искал хорошую структуру определения бинарного сетевого протокола общего назначения, чтобы предоставить возможность писать игровые серверы и клиенты реального времени (думаю, World Of Warcraft или Quake III) на нескольких языках (например, сервер бэкэнда Java и iPhone клиентский интерфейс, написанный в Objective-C и Cocoa).
Я хочу поддерживать Java Flash-клиенты, клиенты iPhone и клиенты С# на окнах (и XNA-клиенты на XBOX).
Я ищу способ эффективно отправлять/получать сообщения через соединение сокетов TCP/IP или UDP. Я не ищу что-то, что может быть отправлено через веб-службу HTTP, например JSON или XML-маршаллированные объекты. Хотя протокол двоичного веб-сервиса Hessian является очень интересным решением
Я хочу, чтобы формат сетевого протокола и базовая реализация клиент/сервер позволяли клиенту подключаться к серверу и отправлять любое сообщение в определенном протоколе и получать любое сообщение в протоколе без привязки к какой-то конечной точке RPC, Я хочу, чтобы общий поток любого сообщения в моем протоколе поступал и отправлялся. Это так, что я могу поддерживать такие вещи, как сервер, отправляющий всем клиентам позиции различных объектов в игре каждые 100 миллисекунд.