public void StressTest() { client.SetChannelValue("data_simulator_plug.delta", "30"); client.RegisterCallback("data_simulator_plug.ball_position"); const int ClientCount = 1000; DataUpdatedCallback[] callbacks = new DataUpdatedCallback[ClientCount]; DataRetrieverClient[] clients = new DataRetrieverClient[ClientCount]; for (int i = 0; i < ClientCount; i++) { callbacks[i] = new DataUpdatedCallback(); EndpointAddress epAddress = new EndpointAddress(server.BaseAddress + "DataRetriever"); clients[i] = new DataRetrieverClient(new InstanceContext(callbacks[i]), new WSDualHttpBinding(WSDualHttpSecurityMode.None), epAddress); clients[i].RegisterCallback("data_simulator_plug.ball_position"); } System.Threading.Thread.Sleep(10000); for (int i = 0; i < ClientCount; i++) { clients[i].Abort(); Assert.IsNotEmpty(callbacks[i].channelIds); Assert.IsNotEmpty(callbacks[i].states); } }
public ConnectionGroup(string server, int port, List <RemoutingChannel> channels) { foreach (RemoutingChannel channel in channels) { this.channels[channel.ServerFullId] = channel; } EndpointAddress epAddress = new EndpointAddress(string.Format("http://{0}:{1}/DataRetriever", server, port)); client = new DataRetrieverClient(new InstanceContext(this), new WSDualHttpBinding(WSDualHttpSecurityMode.None), epAddress); if (client != null) { client.Open(); } if (client != null && client.State == CommunicationState.Opened) { foreach (RemoutingChannel channel in channels) { client.RegisterCallback(channel.ServerFullId); } //ThreadPool.QueueUserWorkItem(new WaitCallback(RefreshChannels), channels); } }
public void Init() { string projectPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\Samples\bouncing_ball.fs2"); projectPath = Path.GetFullPath(projectPath); Assert.IsTrue(server.Start(projectPath)); callback = new DataUpdatedCallback(); EndpointAddress epAddress = new EndpointAddress(server.BaseAddress + "DataRetriever"); client = new DataRetrieverClient(new InstanceContext(callback), new WSDualHttpBinding(WSDualHttpSecurityMode.None), epAddress); client.Open(); }