public NameValueCollection Interact(IServerEndpoint serverEndpoint, NameValueCollection message) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverEndpoint.Url + ":" + serverEndpoint.Port); byte[] postBuffer; Stream postData = request.GetRequestStream(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); byte[] responseBuffer; string result; NameValueCollection nameValueCollection = new NameValueCollection(); request.Method = "POST"; foreach (KeyValuePair <string, string> collection in message) { postBuffer = serializer.Serialize(collection.Value); request.ContentLength = postBuffer.Length; postData.Write(postBuffer, 0, postBuffer.Length); responseBuffer = new byte[BufferSize]; responseStream.Read(responseBuffer, 0, responseBuffer.Length); result = serializer.Deserialize <string>(responseBuffer); nameValueCollection.Add(collection.Key, result); } postData.Close(); response.Close(); responseStream.Close(); return(nameValueCollection); }
private void ConfigureConnection(IServerEndpoint endpoint, IRemoteConnection clientConnection) { clientConnection.OperationDispatcher .RegisterHandler <ICalculator>(new Calculator()) .RegisterHandler <IGreeter>(new Greeter()) .RegisterHandler <IRemoteService>(new RemoteService(clientConnection, endpoint.BroadcastRemoteExecutor)); }
public void Should_configure_opened_connection() { var wasConfigured = false; _subject = new GenericServerEndpoint(_connectionListener, _config, () => _operationDispatcher, (e, c) => wasConfigured = true); OpenChannel(); Assert.That(wasConfigured, Is.True); }
public void SetUp() { Configurator.Configure(); _connectionListener = new LidgrenServerConnectionListener(_applicationId, _listenAddress, _port, new BinaryMessageSerializer(), new UnencryptedCryptoProviderResolver()); _dispatcher = new OperationDispatcher(); _dispatcher.RegisterHandler <ICalculator>(new Calculator()); _dispatcher.RegisterHandler <IGreeter>(new Greeter()); _server = new GenericServerEndpoint(_connectionListener, new ServerConfig(), () => _dispatcher); _server.Start(); }
public void SetUp() { _connectionListener = MockRepository.GenerateMock <IServerConnectionListener>(); _remoteExecutorFactory = MockRepository.GenerateMock <IRemoteExecutorFactory>(); _taskScheduler = MockRepository.GenerateMock <ITaskScheduler>(); _config = MockRepository.GenerateMock <IServerConfig>(); _config.Stub(c => c.MaxConnections).Return(10); _config.Stub(c => c.RemoteExecutorFactory).Return(_remoteExecutorFactory); _config.Stub(c => c.TaskScheduler).Return(_taskScheduler); _operationDispatcher = MockRepository.GenerateMock <IOperationDispatcher>(); _operationDispatcher.Stub(d => d.MessageDispatcher).Return(MockRepository.GenerateMock <IMessageDispatcher>()); _broadcastChannel = MockRepository.GenerateMock <IBroadcastChannel>(); _connectionListener.Stub(l => l.BroadcastChannel).Return(_broadcastChannel); _broadcastExecutor = MockRepository.GenerateMock <IBroadcastRemoteExecutor>(); _remoteExecutorFactory.Stub(f => f.CreateBroadcastRemoteExecutor(_broadcastChannel)).Return(_broadcastExecutor); _subject = new GenericServerEndpoint(_connectionListener, _config, () => _operationDispatcher); }
public void ValidateIpEndPointProvision() { connectionListener = new LidgrenServerConnectionListener(applicationId, ListenAddress, Port, new BinaryMessageSerializer(), new UnencryptedCryptoProviderResolver()); dispatcher = new OperationDispatcher(); IPEndPoint senderEndPoint = null; IPEndPoint clientEndPoint = null; dispatcher.RegisterHandler <IEndPointProvisioner>(new EndPointProvisioner { OnStuff = e => senderEndPoint = e }); server = new GenericServerEndpoint(connectionListener, new ServerConfig(), () => dispatcher); server.Start(); using (ClientConnection client = CreateClientConnection()) { client.Open(); clientEndPoint = client.GetClientEndpoint(); client.RemoteExecutor.Create <IEndPointProvisioner>().DoStuff(null); } server.Dispose(); Assert.AreEqual(clientEndPoint, senderEndPoint); }