/// <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); }