Beispiel #1
0
        internal void Add <TBehavior> (string path, Func <TBehavior> initializer)
            where TBehavior : WebSocketBehavior
        {
            lock (_sync) {
                path = HttpUtility.UrlDecode(path).TrimEndSlash();

                WebSocketServiceHost host;
                if (_hosts.TryGetValue(path, out host))
                {
                    _logger.Error(
                        "A WebSocket service with the specified path already exists:\n  path: " + path);

                    return;
                }

                host = new WebSocketServiceHost <TBehavior> (path, initializer, _logger);
                if (!_clean)
                {
                    host.KeepClean = false;
                }

                if (_waitTime != host.WaitTime)
                {
                    host.WaitTime = _waitTime;
                }

                if (_state == ServerState.Start)
                {
                    host.Start();
                }

                _hosts.Add(path, host);
            }
        }