private void EchoTheMessage(GamePacket packet) { var correlation = packet.Correlation; var queue1 = ServiceBusMessagingFactory.GetTopicClientByName("playerevents"); var msg1 = new BrokeredMessage(packet, new DataContractSerializer(typeof(GamePacket))); msg1.Properties["PlayerId"] = packet.PlayerId; queue1.Send(msg1); }
public void GamePacketReceiver_NoSession() { _correlation = Guid.NewGuid().ToString(); var factory = new ServiceBusMessagingFactory(_backboneConfiguration); var receiver = new TestGamePacketReceiver(_configuration, factory); receiver.OnGamePacketCompleted += Receiver_OnGamePacketCompleted; receiver.OnListenerError += Receiver_OnListenerError; Task.WaitAll(receiver.StartListening("GameEvents")); var client = factory.GetQueueClientByName("GameEvents").Result; for (var msg = 0; msg < 6; msg++) { var message = new Message { CorrelationId = _correlation }; client.SendAsync(message); } for (var msg = 0; msg < 50; msg++) { var packet = new GamePacket { GameEvent = new GameEvent(), EventId = 100 }; var content = Encoding.Default.GetBytes(DatacontractSerializerHelper.Serialize(packet)); var message = new Message { CorrelationId = _correlation, Body = content }; client.SendAsync(message); } var sw = new Stopwatch(); sw.Start(); while (sw.ElapsedMilliseconds < 50000 && (_errors != 6 || _success != 50)) { Thread.Sleep(50); } sw.Stop(); Assert.AreEqual(6, _errors); Assert.AreEqual(50, _success); }
public void SubscriptionByPlayerId() { _correlation = Guid.NewGuid().ToString(); var factory = new ServiceBusMessagingFactory(_backboneConfiguration); for (var i = 100; i < 105; i++) { Task.WaitAll(factory.CreateSubscription("playerevents", $"{i}", $"PlayerId = '{i}'")); } var options = new MessageHandlerOptions(exceptionHandler) { AutoComplete = true }; var subsClient100 = new SubscriptionClient(_backboneConfiguration.ConnectionString, "playerevents", "100"); subsClient100.RegisterMessageHandler(handler, options); var subsClient101 = new SubscriptionClient(_backboneConfiguration.ConnectionString, "playerevents", "101"); subsClient101.RegisterMessageHandler(handler, options); var subsClient102 = new SubscriptionClient(_backboneConfiguration.ConnectionString, "playerevents", "102"); subsClient102.RegisterMessageHandler(handler, options); var subsClient103 = new SubscriptionClient(_backboneConfiguration.ConnectionString, "playerevents", "103"); subsClient103.RegisterMessageHandler(handler, options); var subsClient104 = new SubscriptionClient(_backboneConfiguration.ConnectionString, "playerevents", "104"); subsClient104.RegisterMessageHandler(handler, options); // send messages to each var topicclient = factory.GetTopicClientByName("playerevents").Result; var messages = new List <Message>(); for (var msg = 0; msg < 20; msg++) { for (var i = 100; i < 105; i++) { var message = new Message(); message.CorrelationId = _correlation; message.UserProperties.Add("PlayerId", $"{i}"); messages.Add(message); } } Task.WaitAll(topicclient.SendAsync(messages)); var sw = new Stopwatch(); sw.Start(); while (sw.ElapsedMilliseconds < 100000 && (_player100 != 20 || _player101 != 20 || _player102 != 20 || _player103 != 20 || _player104 != 20)) { Thread.Sleep(50); } sw.Stop(); Assert.AreEqual(20, _player100); Assert.AreEqual(20, _player101); Assert.AreEqual(20, _player102); Assert.AreEqual(20, _player103); Assert.AreEqual(20, _player104); }
public TestGamePacketReceiver(IConfiguration configuration, ServiceBusMessagingFactory factory) : base( configuration, factory) { }