Beispiel #1
0
        /// <summary>
        /// </summary>
        /// <param name="repository">
        ///     Used to provide all queues that this broker is for. There is a built in class,
        ///     <see cref="MemoryQueueRepository" />, which you can use.
        /// </param>
        public StompBroker(IQueueRepository repository)
        {
            if (repository == null)
            {
                throw new ArgumentNullException("repository");
            }

            _queues      = repository;
            _tcpListener = new StompTcpListener {
                MessageReceived = OnMessageReceived, MessageSent = OnMessageDelivered
            };
            _tcpListener.ClientConnected    += OnClientConnected;
            _tcpListener.ClientDisconnected += OnClientDisconnected;

            ServerName = "Griffin.Queue/1.0";

            var connectHandler = new ConnectHandler(new NoAuthenticationService(), ServerName);

            _frameHandlers.Add("ACK", new AckHandler());
            _frameHandlers.Add("ABORT", new AbortHandler());
            _frameHandlers.Add("BEGIN", new BeginHandler());
            _frameHandlers.Add("COMMIT", new CommitHandler());
            _frameHandlers.Add("CONNECT", connectHandler);
            _frameHandlers.Add("DISCONNECT", new MessageHandlers.DisconnectHandler());
            _frameHandlers.Add("NACK", new NackHandler(_queues));
            _frameHandlers.Add("SEND", new SendHandler(_queues));
            _frameHandlers.Add("SUBSCRIBE", new SubscribeHandler(_queues));
            _frameHandlers.Add("STOMP", connectHandler);
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="StompBroker" /> class.
        /// </summary>
        /// <param name="repository">
        ///     Used to provide all queues that this broker is for. There is a built in class,
        ///     <see cref="MemoryQueueRepository" />, which you can use.
        /// </param>
        /// <exception cref="System.ArgumentNullException">repository</exception>
        public StompBroker(IQueueRepository repository)
        {
            if (repository == null) throw new ArgumentNullException("repository");

            _queues = repository;
            _tcpListener = new StompTcpListener {MessageReceived = OnMessageReceived, MessageSent = OnMessageDelivered};
            _tcpListener.ClientConnected += OnClientConnected;
            _tcpListener.ClientDisconnected += OnClientDisconnected;

            ServerName = "Griffin.Queue/1.0";

            var connectHandler = new ConnectHandler(new NoAuthenticationService(), ServerName);
            _frameHandlers.Add("ACK", new AckHandler());
            _frameHandlers.Add("ABORT", new AbortHandler());
            _frameHandlers.Add("BEGIN", new BeginHandler());
            _frameHandlers.Add("COMMIT", new CommitHandler());
            _frameHandlers.Add("CONNECT", connectHandler);
            _frameHandlers.Add("DISCONNECT", new DisconnectHandler());
            _frameHandlers.Add("NACK", new NackHandler(_queues));
            _frameHandlers.Add("SEND", new SendHandler(_queues));
            _frameHandlers.Add("SUBSCRIBE", new SubscribeHandler(_queues));
            _frameHandlers.Add("STOMP", connectHandler);
        }