예제 #1
0
 public RecordAndPlayInterceptor(IWampOutgoingRequestSerializer outgoingSerializer, IMessagePlayer <TMessage> player, IMessageRecorder <TMessage> recorder, IWampBinding <TMessage> binding)
 {
     mOutgoingSerializer = outgoingSerializer;
     mPlayer             = player;
     mRecorder           = recorder;
     mBinding            = binding;
 }
예제 #2
0
        public IWampClientProxy <TMessage> Create(IMessagePlayer <TMessage> player,
                                                  IMessageRecorder <TMessage> recorder,
                                                  WampMessage <TMessage> welcomeMessage)
        {
            ProxyGenerationOptions options =
                new ProxyGenerationOptions();

            options.Selector = new MockClientInterceptorSelector();

            IWampFormatter <TMessage> formatter = mBinding.Formatter;

            long           sessionId      = formatter.Deserialize <long>(welcomeMessage.Arguments[0]);
            WelcomeDetails welcomeDetails = formatter.Deserialize <WelcomeDetails>(welcomeMessage.Arguments[1]);


            IWampClientProxy <TMessage> result =
                mGenerator.CreateInterfaceProxyWithoutTarget
                    (typeof(IWampClientProxy),
                    new[]
            {
                typeof(IWampClientProxy <TMessage>),
                typeof(IWampConnectionMonitor)
            },
                    options,
                    new RecordAndPlayRawInterceptor <TMessage>(player, recorder, mBinding),
                    new RecordAndPlayInterceptor <TMessage>
                        (mOutgoingSerializer, player, recorder, mBinding),
                    new SessionPropertyInterceptor(sessionId),
                    new WelcomeDetailsInterceptor(welcomeDetails))
                as IWampClientProxy <TMessage>;

            return(result);
        }
 public RecordAndPlayRawInterceptor(IMessagePlayer <TMessage> player, IMessageRecorder <TMessage> recorder, IWampBinding <TMessage> binding)
 {
     mPlayer   = player;
     mRecorder = recorder;
     mBinding  = binding;
 }