Esempio n. 1
0
        private void InitializeBindingHosts()
        {
            var transportByBinding =
                from definition in mTransportDefinitions
                from binding in definition.Bindings
                group definition.Transport by binding;

            foreach (IGrouping <IWampBinding, IWampTransport> bindingToTransports in transportByBinding)
            {
                IWampBinding binding = bindingToTransports.Key;

                IWampBindingHost host =
                    GetBindingHost((dynamic)binding, bindingToTransports);

                mBindingToHost[binding] = host;
            }
        }
Esempio n. 2
0
        private IWampBindingHost GetBindingHost <TMessage>
            (IWampBinding <TMessage> binding,
            IEnumerable <IWampTransport> transports)
        {
            List <IWampConnectionListener <TMessage> > listeners =
                new List <IWampConnectionListener <TMessage> >();

            foreach (IWampTransport transport in transports)
            {
                IWampConnectionListener <TMessage> listener = transport.GetListener(binding);
                listeners.Add(listener);
            }

            IWampConnectionListener <TMessage> compositeListener =
                new CompositeListener <TMessage>(listeners);

            IWampBindingHost host =
                binding.CreateHost(RealmContainer, compositeListener, mUriValidator, mSessionIdMap);

            return(host);
        }