예제 #1
0
        public IWampClientProxy <TMessage> Create(IWampConnection <TMessage> connection)
        {
            IWampOutgoingMessageHandler outgoingHandler =
                mOutgoingHandlerBuilder.Build(connection);

            WampConnectionMonitor <TMessage> monitor =
                new WampConnectionMonitor <TMessage>(connection);

            IDisposable disposable =
                new WampClientContainerDisposable <TMessage, IWampClientProxy <TMessage> >
                    (mContainer, connection);

            WampClientProxy <TMessage> result =
                new WampClientProxy <TMessage>(outgoingHandler,
                                               mOutgoingSerializer,
                                               monitor,
                                               disposable);

            result.Session = (long)mContainer.GenerateClientId(result);
            result.Binding = mBinding;

            IDetailedWampConnection <TMessage> detailedConnection =
                connection as IDetailedWampConnection <TMessage>;

            if (detailedConnection != null)
            {
                result.TransportDetails =
                    detailedConnection.TransportDetails;
            }

            monitor.Client = result;

            return(result);
        }
예제 #2
0
        public IWampClient Create(IWampConnection <TMessage> connection)
        {
            IWampOutgoingMessageHandler outgoingHandler =
                mOutgoingHandlerBuilder.Build(connection);

            WampConnectionMonitor <TMessage> monitor =
                new WampConnectionMonitor <TMessage>(connection);

            IDisposable disposable =
                new WampClientContainerDisposable <TMessage, IWampClient>
                    (mContainer, connection);

            WampClientProxy result =
                new WampClientProxy(outgoingHandler,
                                    mOutgoingSerializer,
                                    monitor,
                                    disposable);

            result.SessionId = (string)mContainer.GenerateClientId(result);

            monitor.Client = result;

            return(result);
        }