2010-05-10 6 views
4

Этот вопрос довольно общий, но мне действительно трудно найти хороший ответ или пример того, как это должно быть сделано.Решение архитектуры для протокола связи между клиентом и сервером

Мы пишем простое многопользовательское приложение для совместной работы с веб-браузером, и у нас возникают некоторые проблемы, решающие, что использовать для протокола связи. Мы развиваемся в C# под Mono, надеясь в конечном итоге сделать его кросс-платформенным.

Связь, вероятно, будет состоять из таких сообщений, как: регистрация пользователя в сеансе (клиент к серверу), уведомление клиентов нового пользователя, подключенного (сервер к клиентам), запрос загрузки страницы (клиент на сервер) и т.д. идеи мы имеем до сих пор являются:

  • XmlSerialization расширений базового класса Message

, которую мы пытались, но возникли проблемы с использованием механизма XmlSerialization как средство прохождения данные во времени, поэтому мы возникают сомнения, что это правильный способ сделать это

  • бинарной сериализации в том же случае

, который я не очень нравится из-за формы данных потому что я боюсь, что это немного более рискованно.

  • Google протокола Буферы

  • WCF

оба из которых звучат гораздо ближе к тому, что следует использовать, но мы боимся, что это будет излишним для такого довольно простой протокол.

и, возможно, другие, которых я пропустил.

Что было бы хорошим чистым способом сделать это?

ответ

2

WCF - дает вам платформу.

THEN использовать JSON и REST для фактического API (параметры, которые вы можете использовать в WCF). Таким образом, вы можете в основном «изначально» работать в javascript.

WCF - отличный инструмент для мудрых (к сожалению, большинство из них могут быть слишком отсталыми для большинства из них - не уверены), включая создание прокси-серверов javascript на лету для ваших интерфейсов на стороне сервера.

+0

WCF - единственный реальный ответ. Вы можете сделать его таким же легким или тяжелым, как вам нравится, и большая часть вашего кода не изменится, когда вы это сделаете. –

+0

Я принимаю это, поскольку это звучит как хорошая твердая практика, и это дает мне кое-что, чтобы учиться. Однако мне было бы интересно узнать об альтернативах. – vene

Смежные вопросы