Skip to content

GowenGit/typical-meepo

Repository files navigation

Build Status

Socket based duplex communication framework for .NET Core

Serialization layer for Meepo.

Example

Create a type that you would like to transmit:

public class ChatMessage
{
    public DateTime Date { get; set; }

    public string Message { get; set; }
}

You can initialize a new node like this:

var config = new MeepoConfig
{
    Logger = new ConsoleLogger()
};

// IP Address to expose
var address = new TcpAddress(IPAddress.Loopback, 9201);

// Nodes to connect to
var serverAddresses = new[] { new TcpAddress(IPAddress.Loopback, 9200) };

using (var meepo = new TypicalMeepoNode(address, serverAddresses, config))
{
    meepo.Start();

    meepo.Subscribe<ChatMessage>((id, chatMessage) => System.Console.WriteLine($"Message: {chatMessage.Message}"));

    while (true)
    {
        var text = System.Console.ReadLine();

        meepo.SendAsync(new ChatMessage
        {
            Date = DateTime.Now,
            Message = text
        }).Wait();
    }
}

You can pass in a MeepoConfig object that lets you change the behavior of the server:

var config = new MeepoConfig
{
    BufferSizeInBytes = 1000,
    Logger = new ConsoleLogger()
};

...

var meepo = new TypicalMeepo(address, serverAddresses, config);

You are able to subscribe to messages of a specific type.

Installation

  • Restore solution: dotnet restore
  • Run the console app: dotnet run

License

MIT License

About

Serialization layer for Meepo

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages