public void CanConnectToPiper_Messages() { var pipeOptions = new PipeOptions { Port = 22222 }; using (var pipeListener = new TcpListenerPiper(pipeOptions, CancellationToken.None)) { var outgoingPipe = new OutgoingPipe(new NodeConnectionInfo { Host = "localhost", Port = pipeOptions.Port }, CancellationToken.None, new PipeOptions(), pipeListener); for (int i = 0; i < 10; i++) { outgoingPipe.Write(new MyMsg { i = i }); } for (int i = 0; i < 10; i++) { var read = pipeListener.Read(CancellationToken.None).Result; Assert.Equal(i, ((MyMsg)read.Item1).i); } } }
public void CanConnectToPiper() { var pipeOptions = new PipeOptions(); using (var pipeListener = new TcpListenerPiper(pipeOptions, CancellationToken.None)) { var outgoingPipe = new OutgoingPipe(new NodeConnectionInfo { Host = "localhost", Port = pipeOptions.Port }, CancellationToken.None, new PipeOptions(), pipeListener); outgoingPipe.Write("hello there"); var read = pipeListener.Read(CancellationToken.None).Result; Assert.Equal("hello there", read.Item1); } }
public GossipTransport(PipeOptions options) { _options = options; _tcpListenerPiper = new TcpListenerPiper(options, _cancellationTokenSource.Token); _messageHandling = HandleMessages(); _heartbeat = HeartbeatTask(); _actions = new Dictionary <Type, Action <object, Pipe> > { { typeof(JoinMessage), (o, p) => Join((JoinMessage)o, p) }, { typeof(ForwardJoinMessage), (o, pipe) => ForwardJoin((ForwardJoinMessage)o, pipe) }, { typeof(NeighborMessage), (o, pipe) => Neighbor((NeighborMessage)o, pipe) }, { typeof(ActivateMessage), (o, pipe) => Activate((ActivateMessage)o, pipe) }, { typeof(DisconnectMessage), (o, pipe) => Disconnect((DisconnectMessage)o, pipe) }, { typeof(NeighborhoodMessage), (o, pipe) => Neighborhood((NeighborhoodMessage)o, pipe) } }; _senderInfo = new NodeConnectionInfo { Host = Environment.MachineName, Port = _options.Port }; }