2013-07-31 1 views
1

Я искал все вокруг, не найдя для этого решения. Я хотел бы реализовать сервер JSON-RPC с WCF. Я нашел это http://jsonrpc2.codeplex.com/, но он не использует WCF, и у меня есть идея, как его интегрировать. Может ли кто-нибудь дать мне подсказку о том, как собрать все вместе?Внедрение JSON-RPC в WCF

Благодаря

EDIT: Я отправил мой исходный код here

Очень базовая реализация на стороне сервера теперь работает, по крайней мере, с запросом HTTP GET. Я пытаюсь реализовать для него WCF Client, но снова я застрял :(Я отправлю на него отдельный вопрос.

ответ

1

Я написал несколько блогов, которые показывают, как это сделать - см. первый (который имеет ссылку на другие) на http://blogs.msdn.com/b/carlosfigueira/archive/2011/12/08/wcf-extensibility-transport-channels-request-channels-part-1.aspx.

В принципе, вам необходимо создать транспортный канал, который будет понимать протокол. В этом транспорте вам нужно будет преобразовать вход/выход в WCF Message объектов (базовый блок стека WCF), и вам нужно доставить сообщения в остальную часть стека. Вам также потребуется написать селектор операций для сопоставления входящего сообщения RPC с операцией в службе который будет называться.

Другой альтернативой было бы написать JSON-RPC поверх HTTP; в этом случае вместо транспортного канала следует использовать набор форматов сообщений (параметры разбивки), селектор операций и, возможно, инспектор сообщений, а также для корреляции запроса/ответа.

+0

Спасибо за ваш ответ Карлос .. Полагаю, для меня это не такая мелочная задача. Просто небольшой вопрос о ваших статьях. Я вижу, что в основном это покрывает клиентскую сторону, в конце третьей части есть «давайте перейдем на серверную сторону», но я не очень понимаю, с чего начать. Может ли исходный код, прилагаемый к части 3, стать хорошей отправной точкой? Заранее спасибо, – dna2

+0

На стороне сервера находится http://blogs.msdn.com/b/carlosfigueira/archive/2012/01/04/wcf-extensibility-transport-channels-reply-channel.aspx. – carlosfigueira

+0

Привет, Карлос, я начал разрабатывать свой собственный селектор операций поверх стека HTTP. Я применил его к моей службе, используя поведение конечной точки. Теперь я думаю, что пропустите шаг, чтобы начать отладку моего метода SelectOperation. Я пытаюсь вызвать метод из веб-браузера следующим образом: http://192.168.15.117/jsonrpc?request={"jsonrpc ":" 2.0 "," id ": 1," method ":" Playlist.GetPlaylists "} но метод не вызван. – dna2

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

  • Нет связанных вопросов^_^