سؤال

وأنا تطوير خدمة الويب باستخدام WCF، والذي أريد الوصول باستخدام عميل مكتوب بلغة جافا. وسوف ترميز الرسائل باستخدام بروتوكول المخازن (مع protobuf صافي ليكون بالضبط).

هل هذا ممكن و لتحقيق أو يجب أن تكون مكتوبة العميل في. NET كذلك؟ وأنا أعلم أن البيانات تسلسل مع بروتوكول المخازن هي interopable ثنائي ولكن أنا لا أعرف إذا كان يضيف WCF أي البيانات الفوقية الخاصة بالنظام الأساسي على الجزء العلوي من لرسائل بروتوكول المشفرة.

لا يهمني إذا كان WCF الخدمة هي مريحة، القائم على الصابون أو أي أشكال أخرى WCF دعم، أريد فقط الحمولة الفعلية ليتم تشفيرها باستخدام PB. هل هذا ممكن وإذا كان كذلك، وسأكون ممتنا كثيرا مثال وجيزة.

هل كانت مفيدة؟

المحلول

إذا برنامج خدمة WCF لاتخاذ مجموعة بايت، يمكنك الاشياء ما تريد هناك، مثل protobuf message.Could يكون بسيطا قدر

  [ServiceContract]
    public interface IMessageService{
        [OperationContract(IsOneWay = true)]
        void SendMessage(byte[] msg);
    }

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
   public class MessageService: IMessageService{

        public void SendMessage(byte[] msg) {
          //decode the protobuf msg and deal with it.
        }

    }

وتكوين نقطة النهاية WCF كما SOAP، ثم التحدث إلى أن من يجب أن يكون جافا foreward مباشرة. سيكون الطقس WCF / الصابون تكون مبالغة لهذا فهي مسألة أخرى، IIRC protobuf يأتي مع إطارها الخاص لRPC بسيط.

نصائح أخرى

ولقد استخدمت أبدا protobuf صافي ولكن إمكانية التشغيل المتداخل بيت القصيد.

<اقتباس فقرة>   

ومنصة مستقلة - المحمولة بين أبنية البرمجة المختلفة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top