public void Client_prevents_times_out() { var clientConfig = new MqConfig { Ip = Config.Ip, Port = Config.Port, PingFrequency = 100 }; Client = new MqClient <SimpleMqSession, MqConfig>(clientConfig); Config.PingTimeout = 200; Server = new MqServer <SimpleMqSession, MqConfig>(Config); Client.Closed += (sender, args) => { if (args.CloseReason == SocketCloseReason.TimeOut) { TestStatus.Set(); } else { LastException = new Exception("Client closed for reason other than timeout."); } }; StartAndWait(false, 1500); if (TestStatus.IsSet) { throw new Exception("Client timed out."); } }
public void ConnectMqServer_ReadConfiSettings() { _server = new MqServer("RabbitMQ.xml", 10000, 120000); string result = _server.ReadConfigSettings("ConnectionString"); Assert.AreEqual("host=localhost", result); }
static void StartServer() { ServerOptions serverOptions = ServerOptions.CreateDefault(); serverOptions.Hosts[0].Port = 48050; ServerBuilder builder = new ServerBuilder(); builder.LoadFromFile("options.json"); builder.AddAuthenticator(new ClientAuthenticator()); builder.AddAuthorization(new Authorization()); builder.AddDefaultDeliveryHandler(new DeliveryHandler()); builder.AddDefaultChannelHandler(new ChannelHandler()); builder.AddDefaultChannelAuthenticator(new ChannelAuthenticator()); TwinoServer twinoServer = new TwinoServer(serverOptions); MqServer server = builder.CreateServer(); twinoServer.UseMqServer(server); twinoServer.Start(); Console.WriteLine("Server started"); _server = server; }
public async Task <bool> CanCreateChannel(MqClient client, MqServer server, string channelName) { bool grant = client.Type.Equals("producer"); Console.WriteLine("Can create new channel: " + grant); return(await Task.FromResult(grant)); }
public void Client_times_out_after_server_dropped_session() { Config.PingTimeout = 500; Client = new MqClient <SimpleMqSession, MqConfig>(Config); Server = new MqServer <SimpleMqSession, MqConfig>(Config); Server.Connected += (sender, args) => { args.Session.Socket.Close(); }; Client.Closed += (sender, args) => { if (args.CloseReason == SocketCloseReason.TimeOut) { TestStatus.Set(); } else { LastException = new Exception("Client closed for reason other than timeout."); } }; StartAndWait(false, 1000); if (TestStatus.IsSet == false) { throw new Exception("Socket did not timeout."); } }
public RequestResponseServer(MqServer server) { if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2))) { throw new PortIsInUseException($"{server.GetAddress()} is in use."); } responseSocketConnectionString = server.GetAddress(); }
public PageTemplate(Frame mainFrame, Int32 pageId, MqServer mqServer) { InitializeComponent(); this.mainFrame = mainFrame; App.localStorage.currPageId = pageId; this.mqServer = mqServer; FrameUtil.RemoveBackEntry(mainFrame); initControl(pageId); Unloaded += PageTemplate_UnLoaded; }
public HistoricalDataServer(MqServer server, IHistoricalDataBroker broker) { if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2))) { throw new PortIsInUseException($"{server.GetAddress()} is in use."); } connectionString = server.GetAddress(); this.broker = broker ?? throw new ArgumentNullException(nameof(broker), $"{nameof(broker)} cannot be null"); this.broker.HistoricalDataArrived += BrokerHistoricalDataArrived; }
public MqConnectionHandler(MqServer server) { _server = server; _serverHandler = new ServerMessageHandler(server); _channelHandler = new ChannelMessageHandler(server); _clientHandler = new ClientMessageHandler(server); _responseHandler = new ResponseMessageHandler(server); _acknowledgeHandler = new AcknowledgeMessageHandler(server); _instanceHandler = new InstanceMessageHandler(server); }
public CFrame(DControl currDControl, Cfg cfg, MqServer mqServer) { InitializeComponent(); this.currDControl = currDControl; this.cfg = cfg; this.mqServer = mqServer; mainFrame.Tag = currDControl; initControl(); Unloaded += UserControl_UnLoaded; }
public CAudio(DControl currDControl, DPage dPage, Cfg appCfg, string audioUrl, string audioCoverUrl, MqServer mqServer) { this.currDControl = currDControl; this.mqServer = mqServer; this.audioUrl = audioUrl; this.audioCoverUrl = audioCoverUrl; InitializeComponent(); mqServer.sendMsgEvent += Client_ReceiveMsgEvent; loadPageData(); Unloaded += this_Unloaded; }
public EquityUpdateServer(MqServer server) { if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2))) { throw new PortIsInUseException($"{server.GetAddress()} is in use."); } routerConnectionString = server.GetAddress(); routerSocket = new RouterSocket(); }
public ApplicationController(MqServer mqServer, MessageProcessor messageProcessor) { _strategiesMap = new ConcurrentDictionary <string, Dictionary <string, ClientMqParameters> >(); _mqServer = mqServer; _messageProcessor = messageProcessor; // Hook MQ Server Events RegisterMqServerEvents(); // Hooks MessageProcessor Events RegisterMessageProcessorEvents(); }
public PageTemplate(Frame mainFrame, Int32 pageId, Boolean isTransparentDialog, MqServer mqServer) { InitializeComponent(); this.mainFrame = mainFrame; FrameUtil.RemoveBackEntry(mainFrame); Background = Brushes.Transparent; if (!isTransparentDialog) { showDefaultBackgroundInCFrameDialog = true; } this.mqServer = mqServer; initControl(pageId); Unloaded += PageTemplate_UnLoaded; }
public MessagesServer(MqServer server) { //if (publisher.GetAddress() == pull.GetAddress()) //{ // throw new ArgumentException("Publish and request ports must be different"); //} //publisherConnectionString = publisher.GetAddress(); if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2))) { throw new PortIsInUseException($"{server.GetAddress()} is in use."); } pullSocketConnectionString = server.GetAddress(); }
public MqTestsBase(ITestOutputHelper output) { Output = output; Port = FreeTcpPort(); Config = new MqConfig { Ip = "127.0.0.1", Port = Port }; Server = new MqServer <SimpleMqSession, MqConfig>(Config); Client = new MqClient <SimpleMqSession, MqConfig>(Config); }
public CVideo(DControl ctl, Boolean isDesign, Cfg cfg, StorageVideoDto storageVideoDto, MqServer mqServer) { currDControl = ctl; this.cfg = cfg; this.storageVideoDto = storageVideoDto; this.mqServer = mqServer; InitializeComponent(); mqServer.sendMsgEvent += Client_ReceiveMsgEvent; initSize(); Video_Element_Init(); Loaded += UserControl_Loaded; Unloaded += UserControl_UnLoaded; Play_Button.Click += Play_Button_Click; Fullscreen_Button.Click += Fullscreen_Button_Click; }
public RealTimeDataServer(MqServer server, IRealTimeDataBroker broker) { if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2))) { throw new PortIsInUseException($"{server.GetAddress()} is in use."); } this.broker = broker ?? throw new ArgumentNullException(nameof(broker)); this.broker.RealTimeDataArrived += BrokerRealTimeDataArrived; //if (publish.GetAddress() == request.GetAddress()) //{ // throw new ArgumentException("Publish and request ports must be different"); //} //publisherConnectionString = publish.GetAddress(); requestConnectionString = server.GetAddress(); }
public void Initialize(int port) { Port = port; MqServerOptions mqOptions = new MqServerOptions(); mqOptions.AllowedQueues = new[] { MessageA.ContentType, MessageB.ContentType, MessageC.ContentType }; mqOptions.AllowMultipleQueues = true; mqOptions.AcknowledgeTimeout = TimeSpan.FromSeconds(90); mqOptions.MessageTimeout = TimeSpan.FromSeconds(12); Server = new MqServer(mqOptions); Server.SetDefaultChannelHandler(new TestChannelHandler(this), null); Server.SetDefaultDeliveryHandler(new TestDeliveryHandler(this)); Server.ClientHandler = new TestClientHandler(this); Server.AdminAuthorization = new TestAdminAuthorization(); Channel channel = Server.CreateChannel("ch-1"); channel.CreateQueue(MessageA.ContentType).Wait(); channel.CreateQueue(MessageC.ContentType).Wait(); Channel channel0 = Server.CreateChannel("ch-0"); channel0.CreateQueue(MessageA.ContentType).Wait(); Channel croute = Server.CreateChannel("ch-route"); croute.Options.Status = QueueStatus.Route; croute.CreateQueue(MessageA.ContentType).Wait(); Channel cpush = Server.CreateChannel("ch-push"); cpush.Options.Status = QueueStatus.Push; cpush.CreateQueue(MessageA.ContentType).Wait(); Channel cpull = Server.CreateChannel("ch-pull"); cpull.Options.Status = QueueStatus.Pull; cpull.CreateQueue(MessageA.ContentType).Wait(); Channel cround = Server.CreateChannel("ch-round"); cround.Options.Status = QueueStatus.RoundRobin; cround.CreateQueue(MessageA.ContentType).Wait(); }
/// <summary> /// Starts the server. /// </summary> /// <param name="server">The server.</param> /// <returns><c>true</c> if Server is successfully started, <c>false</c> otherwise.</returns> /// <exception cref="System.ArgumentNullException">server</exception> /// <exception cref="System.ArgumentOutOfRangeException"></exception> public bool StartServer(MqServer server) { if (server == null) { throw new ArgumentNullException(nameof(server)); } INetMQServer netMqServer; switch (server.ServerType) { case ServerType.EquityUpdate: netMqServer = new EquityUpdateServer(server); netMqServer.StartServer(); break; case ServerType.HistoricalData: netMqServer = new HistoricalDataServer(server, null); netMqServer.StartServer(); break; case ServerType.InstrumentRequest: netMqServer = new RequestResponseServer(server); netMqServer.StartServer(); break; case ServerType.Message: netMqServer = new MessagesServer(server); netMqServer.StartServer(); break; case ServerType.RealTimeData: netMqServer = new EquityUpdateServer(server); netMqServer.StartServer(); break; default: throw new ArgumentOutOfRangeException(); } return(netMqServer.ServerRunning); }
/* * 标准进入页面 */ public PageTemplate(Frame mainFrame, Int32 pageId, Boolean isMoveIn, System.Windows.Forms.Screen screen, MqServer mqServer) { InitializeComponent(); this.mainFrame = mainFrame; this.screen = screen; this.mqServer = mqServer; FrameUtil.RemoveBackEntry(mainFrame); CFrameTag cFrameTag = (CFrameTag)mainFrame.Tag; if (cFrameTag.parentFrame != null) { Background = Brushes.Transparent; showDefaultBackgroundInCFrameDialog = true; } initControl(pageId); Unloaded += PageTemplate_UnLoaded; if (isMoveIn) { Loaded += moveIn; } }
public CFrame(Frame parentFrame, DControl currDControl, Cfg cfg, System.Windows.Forms.Screen screen, MqServer mqServer) { InitializeComponent(); this.currDControl = currDControl; this.cfg = cfg; this.screen = screen; this.mqServer = mqServer; object parentTag = parentFrame.Tag; DControl parentDControl = null; Border parentCoverBorder = null; if (parentTag is CFrameTag) { CFrameTag tmp = (CFrameTag)parentTag; parentDControl = tmp.currDControl; parentCoverBorder = tmp.currCoverBorder; } CFrameTag tag = new CFrameTag(); tag.currCFrame = mainFrame; tag.currDControl = currDControl; tag.currCoverBorder = CoverBorder; tag.parentFrame = parentFrame; tag.parentDControl = parentDControl; tag.parentCoverBorder = parentCoverBorder; mainFrame.Tag = tag; initControl(); Unloaded += UserControl_UnLoaded; //this.scrollViewer.PreviewTouchDown += scrollViewer_PreviewTouchDown; //this.scrollViewer.PreviewTouchUp += scrollViewer_PreivewTouchUp; }
public ServerMessageHandler(MqServer server) { _server = server; }
public ChannelMessageHandler(MqServer server) { _server = server; }
public InstanceMessageHandler(MqServer server) { _server = server; }
public AcknowledgeMessageHandler(MqServer server) { _server = server; }
private static void MqInProcessPerformanceTests(int runs, int loops, MqMessage message, MqConfig config) { var server = new MqServer <SimpleMqSession, MqConfig>(config); server.Start(); double[] totalValues = { 0, 0, 0 }; var count = 0; var sw = new Stopwatch(); var wait = new AutoResetEvent(false); var completeTest = new AutoResetEvent(false); var client = new MqClient <SimpleMqSession, MqConfig>(config); Console.WriteLine("| Build | Messages | Msg Bytes | Milliseconds | Msg/sec | MBps |"); Console.WriteLine("|---------|------------|-----------|--------------|------------|----------|"); var messageSize = message.Size; server.IncomingMessage += (sender, args2) => { count += args2.Messages.Count; if (count == runs) { sw.Stop(); var mode = "Release"; #if DEBUG mode = "Debug"; #endif var messagesPerSecond = (int)((double)runs / sw.ElapsedMilliseconds * 1000); var msgSizeNoHeader = messageSize - 12; var mbps = runs * (double)(msgSizeNoHeader) / sw.ElapsedMilliseconds / 1000; Console.WriteLine("| {0,7} | {1,10:N0} | {2,9:N0} | {3,12:N0} | {4,10:N0} | {5,8:N2} |", mode, runs, msgSizeNoHeader, sw.ElapsedMilliseconds, messagesPerSecond, mbps); totalValues[0] += sw.ElapsedMilliseconds; totalValues[1] += messagesPerSecond; totalValues[2] += mbps; wait.Set(); } }; var send = new Action(() => { count = 0; sw.Restart(); for (var i = 0; i < runs; i++) { client.Send(message); } //MqServer sv = server; wait.WaitOne(); wait.Reset(); }); client.Connected += (sender, args) => { for (var i = 0; i < loops; i++) { send(); } Console.WriteLine("| | | AVERAGES | {0,12:N0} | {1,10:N0} | {2,8:N2} |", totalValues[0] / loops, totalValues[1] / loops, totalValues[2] / loops); Console.WriteLine(); server.Stop(); client.Close(); completeTest.Set(); }; client.Connect(); completeTest.WaitOne(); }
private static void StartServer(int totalMessages, int totalClients) { var server = new MqServer <SimpleMqSession, MqConfig>(new MqConfig() { Ip = "127.0.0.1", Port = 2828 }); var builder = new MqMessageWriter((MqConfig)server.Config); builder.Write("COMPLETE"); var completeMessage = builder.ToMessage(true); builder.Write("START"); var startMessage = builder.ToMessage(true); ConcurrentDictionary <SimpleMqSession, ClientRunInfo> clientsInfo = new ConcurrentDictionary <SimpleMqSession, ClientRunInfo>(); server.Connected += (sender, session) => { var currentInfo = new ClientRunInfo() { Session = session.Session, Runs = 0 }; clientsInfo.TryAdd(session.Session, currentInfo); if (clientsInfo.Count == totalClients) { foreach (var mqSession in clientsInfo.Keys) { mqSession.Send(startMessage); } } }; server.Closed += (session, value) => { ClientRunInfo info; clientsInfo.TryRemove(value.Session, out info); }; server.IncomingMessage += (sender, args) => { var clientInfo = clientsInfo[args.Session]; // Count the total messages. clientInfo.Runs += args.Messages.Count; if (clientInfo.Runs == totalMessages) { args.Session.Send(completeMessage); args.Session.Send(startMessage); clientInfo.Runs = 0; } }; server.Start(); }
public CVideo(DControl ctl, Boolean isDesign, Cfg cfg, StorageVideoDto storageVideoDto, MqServer mqServer, Boolean isLinkToFullVideo) : this(ctl, isDesign, cfg, storageVideoDto, mqServer) { this.isLinkToFullVideo = isLinkToFullVideo; }
public ClientMessageHandler(MqServer server) { _server = server; }